From 7e0fb2e6634ae3ef13bf5ffbe542a860733cb569 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9my=20GIBERT?= Date: Mon, 17 Jul 2017 07:59:30 +0200 Subject: [PATCH] Kernel version 0.9 : SHELL, enhancement in Batch mode....(Cont.) --- .Docs/KERNEL.md | 9 +++ .Floppies/A2OSX.BUILD.po | Bin 819200 -> 819200 bytes .Floppies/A2OSX.SRC.po | Bin 819200 -> 819200 bytes INC/A2osX.I.txt | 4 +- SBIN/SHELL.S.CMD.txt | 72 +++++++++++++++++++++++ SBIN/SHELL.S.CSH.txt | 89 +++++++++++++++++++--------- SBIN/SHELL.S.txt | 121 +++++++++++++++++---------------------- SYS/KERNEL.S.CIO.txt | 48 +++++++++++++++- SYS/KERNEL.S.CNV.txt | 6 +- SYS/KERNEL.S.INIT2.txt | 8 +-- SYS/KERNEL.S.JMP.txt | 2 +- SYS/KERNEL.S.txt | 20 ++----- 12 files changed, 257 insertions(+), 122 deletions(-) diff --git a/.Docs/KERNEL.md b/.Docs/KERNEL.md index cbaf3d14..f6de973f 100644 --- a/.Docs/KERNEL.md +++ b/.Docs/KERNEL.md @@ -148,6 +148,15 @@ Prints Pascal/C-Style String + CC : success + CS : I/O error from COut +# AToI +Convert String to 32 bit int + +## In: ++ PUSHW PTR to target buffer DWORD ++ PUSHW Source String (PSTR) + +## Out: + # GetDevByIDA ## IN: diff --git a/.Floppies/A2OSX.BUILD.po b/.Floppies/A2OSX.BUILD.po index 11d2df133743b66445b2a28dd6d0e8f16b3414a4..a1c3323d1538513c839b4d3ff1e28ecdff7da212 100644 GIT binary patch delta 5416 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 delta 5338 zcmaJleS8x|+MCTs)6%pHM=s!a2BCvf%J%OkIwLZS;n5-a5b0F205~m_n$5*v{r1n-D?3=@c z){cdVA7~<6_(n!m2+%>`p#}Ih17UoaeiH~2!ZZVf%CIo{d7#1&*lz$Lke5a>q*(|k zh&Uy6X@$Y}ZS}ZFzL;Q5rS}_rUvjEg8<5o<#2sHpWm5CrGa#~28iyL_BBc_}>k@r+ z`NJ9BAdr+JAwX?g97^tTaSKS>r0rg9F!v)p8=w+A9o10xuSU;UD+3hc(ir!bQLXqCcV+fpn>X{*A#y zml){h4YmDglNSN(=g)8Xk2n)BgF5>=QFLF%9#;i^*d81dU)BdE>nRqhGvZ6 zeJ7237x(&=WjIUzhkzq4KqrQUSJ9uXeo?q4^~?2Lo_7x4-dn#2k8P@B7%_Z_~|#@~)pDL#eEKr?>- zujIDlro*GD9n$S>82_PPQHu#W!buD&jw&MUvQA$N=p@4T)lr2tRZsELZQK%owX#d@0^pKT46SQ#$p}J4ZwdQ(Mu+v-%k598lt)~)WHraZ-4>z?g>CgCrZAQpSaQup`X1&ME2 z_{2s<6>F)>idwwqNM1poCpr9d9|>hHlaix@xXF$NF)0BMBpddnO_e9G32}T8$$sQh z12f5fhz#Fc50`G_967cq(z|+!-N(1mXUPMfk)WO&Igd&T>7qNyqYC;0$$s#E_};q$ z`eG%$gQWM8W0E^bdLN18H}Zpb^^J~VS4c5a7$ju_9P$kkK*|UyCJHx6`tx{yH&B;n z2TAD~B@A4N0GS*axWf6MnUK#5=g34S-9rlJQ5_}O)RTWB>(=&}h(YqFeW=84lFB*- zKBbQBn>u5T^+2|jTfk#%YQyMg1@XO*ZPgbObhfoxIWosu*W0()W{s~^TdkSfgVtpR z`!R3jev80~?6rGfBKuF?dfa_!x1!G6Z&oZnzO4VYo+!?PQ8gPyRp$P9TwZmjeX?42 z5wkU%FcXSPraA&ocz3R1&W-5>u@DAcl0+gpQV?q?h#fA7eGi_Mq_4oomxLTEUespUsNSh|O@-}| zCd+?nLd=P-W+5lGY!rz|iXm85<;MR1E=o}sm*A{n*iLc{Z|H1pEr>;&a?;3#PS$w< z+9r7*QP!p%gA$X4jh*(QP9n+8&w?`#6fq|<@W;|2XXsOC%d2_{=}Cc7$Sw)(pKf3* znfNqjZzfJE_A*B^aaNOgp*k^UVIH>NChwzNd+N{Q(hUlhvay}h1@YLf3+O!iP9ALC zbAf*9LTkkZ`soWr(2e)_I;qVMZdtg^y{u%#?lmvG_{5=xKQ(_f{LPOF^^|Fuh6{I} zuK2?#?OZC1J6-;SG7X#HOC2K|x=X-=Sd+{QTku~@ZVzgTz@uHB^BP&z)FH_fr{oua zN14ek+_1H0F99|yFl>DCk+}C$;0)+8FveZ>GW&jejs0!=pY7xAlk8LN>5lZQbf?LA z+#a@1x6jGYTb{Gzli8#zgR!j3T$DN0vc|s7y3YCq{C#FUZ@p;$yB)(o$jFqCc)s^= zjj_U0W2|HwYK-jb{Ai7_a3Kj)GsSVj6mU!rICu`WQfy7o=v>44f=1~HRu{C%YH-pf zu3#I2Mp;?-Uj`nlHL?e5jG)IT=5f1V6YgEK$!>veL&!)BTfMbLkZ1}S|CYJCs89fy#lwEH2O{V2FT(1MK+Qc+21l5D* zY|Lj?e7f32HM0$j#*Sw;+Hl+=FXS;erIzuI*mwtARq2k;**eM5JOD&BSYq^<2E39Q ztYg;L@ns8Fne-IgHV{WZ5(I)XAutXC`w);O;d)9>0ku6oTlH9A=itQ0Kt07&XW-fWAp)dZcVP|UNrUyZMygUy>=<-P z_~7i2lY&E$exRU|WL_JeXvmlkWdd8B@iPYX5M>n{7IZeGI}W5f>d!mnwDzFW4Rwzo zBoQJ*htsos-&Un(jU7co9ypc@{Bz2(IV_YdyFN>INam)K>5j56p5>cHQ|*E^X{9r%+FotcGaJGMHV8jeCv5kKlEAw5f)_|t(IcNbAv zSZ<*LSh8>*^J*5}fmEz_;xq0G8DTc?xeK+CZ@WsjI)z!_m>m@EFbU~QtrOp5OwWqU zm#22fnXL$tz8g@;g=0eTs7;+sXU5OQ7bqTJR?m))Nt}%vy-?k=@ECv&c+{vb_W7Mh zO~sghHiun@oZk!~T|mAWnI)}5ge7sp8cE9@ibN_vF+ zVhoZ05{<9N_hP1RsPKWzF?reB5OPLR8YgTbT?;wo7(8=pP#>_aMSBa@ z&~qdLW_k*)9_^5El`L0dgoFQMjgbP=tcV{^J^TyG3ZM(Eu!)|?J}DWb+QeUhAFa)M z*8%XbHKLPeLN5w?Wea#N!zLObAsuY7Reue=3G|a<655hgf57%W0z&z|F0@rL=ir&D z72sGQvuX}L&kOhNSV!~9Tx=j{)NgnB?{5zpx6kv>XWtmZ^T+UCQjPglEY|qTs<$x; z4XHFjN;|-Mo46g2HgPK=JsGh|>k;X($V<{A!ZxRFyHod+Q}?t}HbJuR2TV?J3vXj! z&?>-r4SKB}2#O@X4^;+=Q@}BblVD@zkna|pvRo-^JEVU=Ds&pJi;4r#0_+=bC&B7X zWKP6zvwsX4n>;lI?Q%jrvLht_w~InlS)1QfV+0UU1kh3gycw;{9n+UxbJE}N> z!OI7)09{{*mZ~hK@Dx6MX;wG5e%0fmIJ2Dtc1~sIu&R=7`kC$nrQM*dTbxMm>;^k~ zs*~IT1o$2(%8yd;lygH>@s2!lCVhwrp2DBc-Q8V%lf{L>D>W*(M^rVc_Anv+i&xo8 zx@BXn3dJ43Ujv&u#llKfQ=@{Zuni0j`02m7K&TK#91oESM3Tt~2qJ*%p6V=zR!X?llYo=7~jJE86w8B?hesy+g#><#|PPh=&qU(!=>SOW^l!YYK4Xe6t8BFvEqYbsdWD^5gx7nVX9P96JQ zU;G<{i$dQZD*9|D?}7)+hJ$_KzW?cK@B3Td**@r-u+a|GD5R3NfYM87Y%2NjxM3fK zR^!Xh+71HelvM=t`4Xks2;_CVePQsRC>P6m_ueaY4jYHb{5=Wsx@R-4=~SR#2b8SZf)YdkRT#6%CL zfm{}ctVXvISMW^1a^-z%XZ5!SZQBjBqrY%;lqFz1nptKOzPv(@jbdfUM%=%jl3e?> z@?6+4vH_eheW)K=A}s_WJ<`896;v#0p+z7^PCt8yX<4o;c@U-Xn>t_YJkWWpQ*l9c z!FFM!YeDzI?#12i?%mxO)&$?Vy^DK&y%@GP`bpH%SJ1cQV$sF=ix}2;arj~iv+-f& z5oX|FbWTiTOp!GfH?vo!|JR za^s0JrW+GQ&i>%cx;oLIE7 vXr*q^gKHO`c<{9H1EemgJgh7atIEUb^01~noKPOtmWLC|!%22Ygf4xj$F(m9H&%XnW#~ff!-g44VXqYzr_LTUcgh)z~697~9AOOxi?Tz>p?{ zkht}Yla#DJx9P}eS~8lZBu&$m)$uygjJE0Pdu=m1US~Sq|2yYgNj7=?wY7A{cfRwT z^R54P#E~NnM~*Z+oTp~IS9!5-(ydlyyj$7md32?^I#Xef9(J6}+!^X->Ql-zbALq% zG#aZr+IEEWjzFk;U6lErR;E`+cSKu59Uc0**jRYz;EoWpe^r^@)idl=!x?==}V}%=;asbzgrVJRa){w1s-Y zCr4v_Ebj$nI>g!|Pmr`ST+Bbzy5=HH0WqM@K2y?!Y;)FVx=eud!>lxS= z!{&V7mz&wvu5THQw;b4QL@F#9UhM}UGC0EQ|4Ezg(*r@~`=JpW$?!J)2rcnmJ z$tV1oY8Td75Si?JqGLA$PnLZipJ1?6x68pJaj=W;l$VTS8 za@NR3R(MsC%~^a}*}~q*2cKM!*!98vOzUUU14HA?855Eb2T?c9a&}|Qp?|kjH>e z!;S458Bbo2xSSDW>L>Nbp(X=7+=bgX3D7*L;QuX&+`>(F;Gq#IXjtyE<;{9UU}J*?AqCjt`q(u}A0i zvl<|U#H@x!rX4{;4iVP{@sgvHy-yV@$0o0PYPoWJ@{3PhqD)Nw{;6Mo;pv~-Ewwe1 zp%+Ut`gdQw=TXJ-4<$1iXzy(AX_)-?cjl{&tgMz9cg?P{Z)(_CQxmh?I!qF%3G>MtHbq#?TC7~HU=4_(y?ZmOSI*do2PtFs4pLXU=9d)m7? z^_48A6H_|cqdj_8Co6*m3AATxv_=$;vfS-P=WEKrsUeH@sP?_nwvx(xCfsNHh1;6^?2ms}Qdu!)K-#*K5C5d) zzE>@|^P!=xT0Sncz5TY=?kTBkm@}&_wcW`tz4p6#)i`ACw#{|J^?|V5P`G~b$=4U$ z_r?YrtGyR?;@kq|@5;;~#pi&YeOu_+lJ6KVoVEo@Ul3nCFS4Zb4sVBB+}^{gUo!l+ z*s7G54ZYIl$$13}iYS8lzH8iCp6OM-XB-JB9^3c9e#H-rQ@7a46aPup^00KxON817rHG=vZ%jED|3^*z_)%_6@)tOu&oA$4018eUG^Oo$=mzJ2guxD0<0-35P5$+NZXG>hc-JzJCyc(@-kj~$+Zsq$%&ZSC)^B+PM3q~TN3vreO|1|U`RG-EFFJr%M_4e5R z4FVL3HnT#eOkcBaBtf% z7@ttRTj6nvIU(_1<`-W57i1viKdm`Oktt@9mFvKrJ!G7b-o2~v0aY4a73JSyV^mBI}ka4GZhr9=8 z3vovX*Ht?tmMk1ME$g$*qWVVnB zt~2zbnm_+~3U7OmZ0w9gdb)#bW?WgG7}opt^v0R`1G?hSbrMc%G|;*}gtUR>L%r$p zEEs9)9qV1l>_5iwj|_61`Uz&_ylRF{E7r37p9>(F=OOd7+u0eIjdJnVwx5NzIO3@b7m_{L9c0hkkL*{|{CT#-_ z83`2ApuUujXwYB^rqy2)2hdu`EuvSYII#a#a#hbg>-wtSEIwO#Qxc2h08esUW|`NS}DD_d{dz zTgpR^=3AC4GjAvkwYmuo`rL1n_my*RE3cKTSmR|6mAkT$%sg}DyOqmxa#-EQaCc|8 zBY@k00Ee-^pS8N#kE+<-vTQ$wEsRiRYq+y4@9gYuW%>U!B_=F~_Ahaq8Y~7e;OADM z4+f)ZQ%8FMVL>3=wU#+xBDj@qMsjN-J~-a8nN^@8=$7<}DfJ#CT}Bs1H`>jlH8?CZ6xlO zQu>}|V8Cm_z6|@_#WmZt+}ygk6K#cptm`n-n&>8sGkY`Gfo+7<%)S`H6L(S zO_*?+`CG9)WNuZB6JxQ_F}-yxKDfA#IoeF#8kicU?XH!}rXSY2IZGv2-um=m%+-E@ z5H<*LY8%Bqi#I`x4O5(jU~?J|qs-nZd1zw!T_)K`?}5=6%ZZ4UtH=_#Hk*qilA`XG zt3<^rY7e&H--5jZ7>UJu`^E+i#<<8n%Dh{_LA|)RyTYS=Bp2q|HfL+hvE7s+vfdpa zm$Oq!uJ*E8X1|Pj69N-K9Kh^|0HkKP5Cjn3AZ;bt)@(zj??7ZALc%7d#l#JAAVLr~Xa%z)I!JKcg)u^C!2AOsBh(XQLZf{H z19juanRX49#XVB@Vod%Z#xx4)Bkf^!1P(kz3NrtY)F0EK23mW%JD7bKBgjHDvAq45 z%+vm=>J_`0J+5R6ZW@?x)Cf5(UgwxR280e|M@tSFPv%;R6XRIgi^zamCB$OMiYa~x`}U2XWA*DvZXhtRF(_v zgt*;}69_OJrQyG1T?=7L2Wx61nirFGwSLAN>y9*RC@l;m3q6CYQmhjAoa z8SoK3pks&PtxD zckgDdyUm4SNv*p_u63_i%X>eT35sQ~d9p06%>GGp9p;;nS8QLuh@%3n9o_0_^h0aEA}~l#eAQaqaT!`AHwK)4;zC{OKIW}IT{-K1={wbV!ie4 z(EtGI&e-@E)4nL@e@V_ihk+%J5xOl-EjY2YM_+JYMDLBqhYul)d|VQRA9#X@J~@kM zBpyT5_GL~qpJ`7?s$ap#@~4dgm!&N6RY?Fh?L3+_AmSW(epZhC8XB{oGq0ESb_U~Y6P2`on7kK)y%=Z#$ zF;@{j6Nz5mUgmn`g1O(tTmky}zQ?B~5Uzn!glhtf*Zxy-`a|iJf25@R=#437dr>2E z{dg{U?I$8Ua=j`pbBby0r?Tg@IX#P+_PXqPV@?;--juxjOz=|jb7QmHQtbSNxvoqR z-=g%wm+SZ?G)&?N-v2W0bz3|&ze-cOWHc_R{*Rzq_G{x+w`HFHH)%tYm5-v|8hIW| zVc=~Fd0@ZaNiE@j7oTU9Il4AQdYJz`W%``Ya&=q&SwAbOSnNfly6f_HD+4a$&`wJ% zzcdNXzXfo<#C`JZotDSm-f5j*I;mLRojPoF8P;D~-#vG&^>u5ZA7DC4AE^{K+7Sj^ zR=mM@^EzvhpU|`PUS4J>>@f1Lw-$77VjCzF1#S_&iH}04(T?DZ@H3i(uiMrW6zSq1 znrLb14u>`}ZzMH_5V-cvEn!x^*|_$4Ygs+V%+lru!kulbFv$`<3r>#db5whF?qn%hLe;@i%k352|U9a!>)WBQd8m?lAKW(L{J9+Ba-p zM{Edrp=;RWGHFpq7*86s{UUdB0a%|CN)W!TjUmxQDB(JgMwVhjc)EiZ%s7M@o^d%c zEu70aEO%4A7H56!1@k_Pd9IHjp@V>k@9r3)Wu^jWXYT76jEHHE+J|6|>2v`rpElmmt!0TD1am37 z;Q1&PAZUS)3gGs&G4)1Jb>1ZR#$g4@LQa`;h1NT6#!PMn;p$FfhU*rQrcz?ZYiF$B zj5s(+JiOhw@|aai+={{O+pyQ5j2A^X>Y6kcFb~f0G0f*+1B~6&?3;#bW(ew36uliJ zebXS>IK?yNv~=YTjH3Jiqwd70vb!v}R<|6rmLxuL!Fp#gmTw7(+ua!Ky~jK#l3}1F z)YH12srRBM_dYB}@h&2UdX|6xtaE1SCu#D3NC~C|P0Tfu99ctv3dOOX!eIZWL9c-` z&t(UYaNo!nD|o=@I%f4}eun6MmKl1V!=3otTuHb;FC`J27&76U2QkC-kOU6Q=#%9? zGHcJw{sqjGaL%Kck@LlLIOj`AUOD#TdyJDyaBG-`Vmv;ZrvC|3iVYKCY~rv!h{%-X ze_1d?zBbg~&+@-A2jzHLGMk2Sd=)G?&r30y7cr6ljLDa{iR!Z$miIMN+Trc(JZbEi>hqYH{SAUqc<}H|fmHauEwv^}Ab_Rd zh4j&Z?w;rb!t|p|dr?~0m&|_BE|XgR%jPEdZD;B$V8#1gam1zHyWohwpE}~16INS- z%mzp9^uFN(l#VfV9s&tZnG#sagRUeX&+O&NphG3dK&zyDV4Qg*OpqLj1SzK)aTM9^ z+9k-xYUIRa%s-!}-6seuT!sHj#4id`ZP;FmA(Y7=kXr!SMGKX{GGpv;?}^@_!)g4j zVHJxcv8A}Abvg`i92+3s2ZpW=1OiOG2=hzou>J^adc#Ejuzo0}??FvdUot+vWDP3= z7{OJ!abl>7NbDUL(Z}`-jH0ZwH#Wp_mWa5dsy0x|%Ig*5=dH@ToS-?0l{YAc<38KG zd5y^?*HT)J@Q8^efxwbuYgqX*f^faY75CY)cL0501UQgeC~Tr!=2);h~aS$d@J#nV2j3ycx)dE=sNXgT};!)b*5edV%e*dz;dHMHgno)$rxuVRvXXV zXInmRO}fx8mE0|7Dli9D(_$3dZ>#PB#6V6f{jgkZLRiT*<_KdlS+ErVk=IJ3WSux} z$9nY9QLO+o?aE2!-C&%#-{xu9h*b(ZWM{)fl%EVe0N|&x3B9?UJUk^q1t-|TF5`#y z+ZGf8KH#uH^7RE!@gC;uR*X=E#l6xMO$+FFmmL6tbmYZb#aU7NMbQBL2}A-tJ0f9L zxXl>a;qY4uwj0--vij?GV3~rQV4!|Vmd8^2^nEs8r4Pbbs_P*YH`1GQmgpjEKzq$b<2QF$tCbET?@nuR*(Nk;oe%@W z=j;-qUSRH`C}Mo&PHW+1n`uxtKX>MiUO+deC+&zFTTDqoXSQOZeH#yd_yXJKF0g|y z(7uxvxJ)j9RAdh0+7;A=LqSSHhLUy)hvv8nOOe$J0)zb!NR;;)WoNBrS$!fI@bw$} zKc#qLp510R(t&KKhq5;2L}rp^8bDwV@j75ild0F>yL<2KlWkbYRw7LyGfW16zn((@ z{%Clpf95``!-g32aTYlDp!M%rGml#}BlwK!srVgX^5abVJ>|J0O#1`2=eCToxh4~y6SI=G2iE?Snzk)S_*e&!$R-N-1{G5bm>18 zW7y{??*A7?liz4&_J2z++Qi(=$C-K`di?h*$uki} z)Cq!d^8lyOb&_{x!G9R2z}BtwGgP%c?I-7<4agoz^n<=7A6j24u5JFWO;{7>v3%@jHzRsy6_00A;>7Wg<~xLAybu7Ao>>R(PYa_#SIP;uJ%yPBu$JE=_-V z9-ViKpw0~}9!8!4C1{xQR#ERZ_r>yV6HCZ(cBIepnXD6eGrdd{JtVJ>qmLWGV@#VO z=hD@>G5lCYkNS`3qUfrc=;iUthbq~;T1%>adgJN{-m>YHk>OFjrfp>N6_jUbO{byANPTg;-2 zprKc`wS-zLS#f|mc$wuCJuq2-w|Vp}PdTSdiy~lX? zUTeup!bY6;!EF)_Y(Cp6xS#x}eAK>nU@#Vq^~U@5F#9Lvm2F^)XAE1nTIc+f;Ld!l zQ}AhnzdkB`fXEkbZ~_RKP5QGROxgjEM5G$cZ2p5}Ul0?C+->`+J)2_tX3p5MtLyX~ zbs>F~PCO04S~15%l0Ln$co=(We#H1?x7sxC3u(*n7iS~T=|@EfvG|J=Lb#1hQMJ(a zB}`g=&KQiU%dUD{5+gbA+vfx{GK+oJlWBDM5C>oqlks9eBxDw;V@{G(@HCsAI&Je7 z0V1K3OL{f)sb9f)W65cozX({#1^x86uHaeYL+CI68u}@8Z)WOqU_F~q5?G2wjAJ8( z-!O(2+5E1oZ*n7~GyAs?EjLfa$7b%b+47Qp4mPGhRg9M}ReVmH^k{H&neaQ8YV;1v zZDfU%I%k$}jmhK9=9PmyhaH~Be2M7b`J=~@qZoQfacAa|Bg|8bJ3~sXC0}$VoN2Bq z`2x^|kvVP|z7T-n^3a#@RMN~Uydu?3rjT{x#}Js2Q^f@GR6fZ*9D^V9Y6|A$-4_Mx z#*Z4?T9o|4LQ1Ur(x|INn6a!_F^;q-jX9-?=@sfH;xnJLl|r-xgruH3}jM@20OwQd-2ywh69e5k*2{cM_$%+^!BH(})8YOTmRA@GOF zlg3JXZ9%P-;$J=&@3TKD}IuZIjQ)jz#DfC|rFCC($>nBxC;aGxo2%zgPFORcqv(> z8+n1u`I-ZefL?`fmjp6z(sFXex5r)zWG+$8)n_^#%5%I7v?|kSC{vm5O*PqUk6Bk| z-fPV)9uRas6Utn!Irhq#{~gNoWX!D1oWJN&c$Q>!T$*=JNSJs2E=Rf>Z;SEDKD;h! zwLodt4~&it#}5bE+qRz&E})<-y&ci7Y|jf@_yZj78kREGTJEE$J|SI;XB}@r1F})R zRs-{_H`@@0$u@60Z(D`cqrkExr``>`H5wa9Yb@AkP6tV9=e&SyhjHr-neLiRVh$BM zG2jNVf!t0@8xPx02f_&5yNpK~tzDD(mc-QU8UDxoLz#b8ly@QIKb+g2`79nXxQxN0 zh#;W1^e|LZ+c4ub3u92Ti~srt;`NR<=ze97_^o7pqCsofKx|Jitw7w7G{TT zu5JsrY+1+b#mQ@!QzD@^U+qEw8Kvf(7iel_+0?PjiUi@ObZc?90G;x?1#=1Xl$BMJ zu9}OrkG2h5Jur4`=)k^Ru{aqM0#L<$SLb7R0nk!&FxAcv>}wyQBAp%3sX1;TOn?fk zlx1HevzP?pCK<>B0cC{&%4tYP7xG|UQvTW zl1*E5LW(S#Kf$6WRgPr>POQRf3Hx$zBoab30R)t}nn?Du-rqD6Gb?BB2(JN1-p82z zV!5Rz<^l3)?plh7*;i3F|52B^nl`(JHp}rD;Gby=F*QU+6Hl&8&nX^7dVz8;+Jd|fcz(ZN#`u|Ue?LvrI8~A8Qa3fwk(XZk1JGcnR+MS}@ z+y`Wo%a8;cl{$d(t}s=p5}Ve=fn%l;UaD;t3B14Ca30C@?T8ADmLsD=+}ail2hif% z`hn!P&5{mf7Ta-Z^qadKa(g=g?G|5V9617|x?F6AUQ*N6wJT-Xf0fwE@W^c+u!9fH z-GRL~c^R}_^jH9^^@&Zn`secFkICsfBdtcEp6N*JmJD7km?*@Pst>-u*GSRtMk4;0YwT<#P0krey;CHrx~zBVe4V@#L7c) z9UY|8J0#C$`~#OhJXaR{fp)w0VJU!*$P>DbF5vb5pA>N2NsF_N@X;smJ1QZCilfGl zj%AiB$Be%o%Pdun8}}T~^jXR#jKJ~CdF3a>An(bfo=a7P=_^1;z+bdl=6zI5zL6&T zZSen44x{43nQm+0DaH8Lu}q&!yIHWQotEp~V!VGmvpjJoDaAa50HVOpUt`&COZ6ZC z5Iyx19r%so$5K5Xmpx4rJt0`*sbr7&xXOMzNd(sv2R|*A_TQ1(jd90Bro+VpfmF#K zUdMPNn&nT>`!*LGf12fhZrFhanV`!(bbj{=b#nm=A_JPHr1$e!j=6vY&8DIL2PS6E zkeweHJj|S*7D3<6h;X#bLs(E9A#Evl!`z>lJqqqj`>fbg$>)q~Ph=J+K5rsvh=70| z<4shyMVMSfo^}h|nuDM=LT#BnhdyH4@Nl{4%FeTZ9kSW(e2K?ND%iB@#E2Z1Mb`1^ z;nv)s%#jp^$26inQQJ&Nirq_HgrqRdZ{Z+>vp_(3$)86$3NeS*e!xjll1Z)DA`syc zK~ew{w2@MbA+13`IS;%z%Ph#hM#qxBY|JmWOee@Aw1rz6@WVrpw2=Crsyq! zP*gV-{M7E)u-F3k8;(X#Q&VO9(75<-CCd$1qV4NCIdl+Y`AaO3P+Ld1QwB@UdiqX3 zk>CIU4mU_q&XNR2qWIN7oX+eIrmo*ZxJ7P&eIn)+cL(x!KcdWw<&esAUc#11m`)EgO4E5u# zI1gT!=PMU_>w>4j5-t#3adSNC+)VqbAXRu?kV;5eH;58)2v_eJF*AUG=~=Lt_cdt- zYIoB0D|qgM3Fka-4(kPtZzO5teba2`IAFoIgpF)%)dzO#gTskKv3OrEo;GKHhinO% zQS}9^TJYkmt;!NTOzTU6|ALogKNrDi!96L?E2)*gYp%@orsR8KWe5c;5AUthp+p0T z-TKgQz0gRBCFcaC!qrxSUW3#g+?YlSFVnb}UVyP{%g}{lfMYpE^Vp@C5%RernE^^Tlgcr6Ql;5 zyuCX~Ca*^@RwaJRpluNZbGKS}Iw?X+ZJXRhV!IfqumD6*V>xi|itKPE*k>NJqJwp;8~yINYsJ%VV-fbpcqQCxqGIh)?C?Y&_3pq#x= z&K@$;x*KQCWPU-#Pdp>>sTS=KE$5WXj2~~&T9gxQ+PSu@Qq_irNqoz+$R&ems@`#^=`IAv}B-(`9)CCG*Ax{AhWMe)7N^ z%)-Hg_Mw$*zG7K)RDhgN6TCpt@oeI1`r!*NvFmNyy1Ls~xg|L&I(#7B7vqHY0Bu@8 z==wsIV-+O34vej2Ss9i^mlInnRErSBY4Vbh1A~JUBH(`wM>!}D%#|AI# zW4qS;2Lzm1Gq2f~+tvchEPB)E-JellDg2r7vyqH~te?Z~VV$C17|Q;P!uq#h=4OG2 z@`s%2FJU~L|AnMVf;wEE{J-Kqtg;mSHxVst{vQnT{5n-wGk*r^_>FX2_{o&}w`rM~ zC?yuX&8H{c!F0#F=1@G;fA4~!-rvum&YjO6q(A$k+|2)`2GL8alSu>M_> zU*t;l%==gRm>>;G0XNL`x498u?)zejv=0A(BS3WF{-=bXQa>Ne`r?QbTab7ePd63KJ#uRBRaq zF^Vn8b|Y#pKLY$cvVkcmm>XeDy0(}^L>G;t4vmrSdb z6cJdaQ=|}+%bC17;!Kkw>R&9cj-uBTe~VKj14MF(B)K(!Um)L>FzamF+A5hp50!1S zM}xPS&Cy^b^W|IQn*_7D6@#5P7CDOkbsjVz=$8$ogJ{6vm<@QzSP4um*}xr0CChKa zfthO&3r?Js{7zbg5jZc|fRZ_A;IPc^^co)Q6&k~zR=uUj4P*yZ;wt&E@hTn)vn9s8 z7_tcmCx`I2@1Ta$lPxV+Z(}9%;t*wv`Su;8aH5iwRv{c$u+p$Tpw^dE@uDSujE&d- lX3?@HTCG>Il4_&t0sP9c#@PFSTCL1C&OD&{W(pj8{ttgWAfEsL delta 18150 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 pData + >STYA ZPPtr1 + + lda (pData) empty line...quit + beq .9 + + tax Char count + + ldy #0 + +.1 jsr Cmd.Normalize.Next + beq .8 no more char, exit + + cmp #' ' skip leading spaces + beq .1 + + cmp #'#' Comment ? + beq .8 ignore remaining chars + +.3 iny add char to buffer + sta (pData),y + + jsr Cmd.Normalize.Next + beq .8 + + cmp #' ' + bne .3 + + iny add One SPACE to buffer + sta (pData),y + +.5 jsr Cmd.Normalize.Next + beq .8 + cmp #' ' + beq .5 skip additional spaces + bne .3 no more space, add next word... + +.8 tya + sta (pData) + +.9 rts + +Cmd.Normalize.Next + txa + beq .8 + dex + inc ZPPtr1 + bne .1 + inc ZPPtr1+1 +.1 lda (ZPPtr1) +.8 rts +*-------------------------------------- * Y,A -> Command line (formatted & not empty) *-------------------------------------- Cmd.ExecYA stz bStartProc @@ -536,6 +590,24 @@ Cmd.Exec.READ lda ARGS clc .99 rts *-------------------------------------- +Cmd.Exec.SLEEP lda ARGS + beq .9 + + lda #Sleep + clc + adc pData + tay + lda /Sleep + adc pData+1 + >PUSHYA + >PUSHW L.ARGS + >SYSCALL AToI + + bcs .9 + + rts +.9 jmp Cmd.Exec.ERRSYN +*-------------------------------------- Cmd.Exec.PAUSE ldy #bPause lda #$80 sta (pData),y diff --git a/SBIN/SHELL.S.CSH.txt b/SBIN/SHELL.S.CSH.txt index 5ae97d9c..dd2f7caa 100644 --- a/SBIN/SHELL.S.CSH.txt +++ b/SBIN/SHELL.S.CSH.txt @@ -271,6 +271,64 @@ CSH.CONTINUE sec rts *-------------------------------------- +CSH.ExpEval stz CSH.ACC + stz CSH.ACC+1 + stz CSH.ACC+2 + stz CSH.ACC+3 + + ldy #0 + + jsr CSH.GetCharNB + >DEBUG + bcs .9 + cmp #')' + beq .8 + + jsr CSH.IsLetter Fnc or Var ? + bcs .1 + + bra .9 + +.1 jsr CSH.IsDigit number ? + bcs .9 + + jsr CSH.GetNumInACC + bcs .9 + + +.8 clc + rts + +.9 lda #CSHERR.SYNTAX + sec +.99 rts +*-------------------------------------- +CSH.GetNumInACC ldy #0 + +.1 iny + cpy #10 + beq .9 + + sta (pData),y + + jsr CSH.GetNextChar + bcs .8 + jsr CSH.IsDigit + bcc .1 + +.8 tya + sta (pData) + + >PUSHW pData + >PUSHW L.CSH.ACC + >SYSCALL AToI + bcs .9 + rts + +.9 lda #CSHERR.SYNTAX + sec + rts +*-------------------------------------- CSH.Push pha ldy #CSH.StackPtr lda (pData),y @@ -325,33 +383,6 @@ CSH.CheckStack pha sec rts *-------------------------------------- -CSH.ExpEval stz CSH.ACC - stz CSH.ACC+1 - stz CSH.ACC+2 - stz CSH.ACC+3 - - jsr CSH.GetCharNB - bcs .9 - cmp #')' - beq .8 - - jsr CSH.IsLetter Fnc or Var ? - bne .1 - - -.1 - -.8 clc - rts - -.9 lda #CSHERR.SYNTAX - sec - rts -*--------------------------------------- -CSH.IsLetterOrDigit - jsr CSH.IsDigit - bcc CSH.IsLetterRTS -*-------------------------------------- CSH.GetCharNB jsr CSH.GetChar bcs CSH.GetNextCharNB.RTS jsr CSH.CheckCharNB @@ -410,6 +441,10 @@ CSH.GetChar lda ZPBufPtr clc rts *--------------------------------------- +CSH.IsLetterOrDigit + jsr CSH.IsDigit + bcc CSH.IsLetterRTS +*--------------------------------------- CSH.IsLetter cmp #'A' bcc .9 diff --git a/SBIN/SHELL.S.txt b/SBIN/SHELL.S.txt index 3f92da76..22d94116 100644 --- a/SBIN/SHELL.S.txt +++ b/SBIN/SHELL.S.txt @@ -70,6 +70,7 @@ J.INTCMDS .DA Cmd.Exec.CD .DA Cmd.Exec.PWD .DA Cmd.Exec.READ .DA Cmd.Exec.SET + .DA Cmd.Exec.SLEEP .DA Cmd.Exec.STARTPROC .DA Cmd.Exec.TIME L.CSHCMDS .DA CSHCMDS @@ -79,15 +80,16 @@ J.CSHCMDS .DA CSH.IF .DA CSH.CONTINUE J.CSHCMDS.END .DA CSH.IF.END .DA CSH.WHILE.END +L.CSH.ACC .DA CSH.ACC L.ERR.Codes .DA ERR.Codes L.ERR.Messages .DA ERR.Messages .DA 0 *-------------------------------------- CS.INIT jsr SetPWD -* lda (pPs) -* ora #S.PS.F.EVENT Now accept events -* sta (pPs) + lda (pPs) + ora #S.PS.F.EVENT Now accept events + sta (pPs) >SYSCALL GetArgC cmp #1 @@ -130,11 +132,7 @@ CS.INIT jsr SetPWD * clc .9 rts *-------------------------------------- -CS.RUN ldy #bPause - lda (pData),y - bmi .8 - - ldy #VarBuffer READ Command ? +CS.RUN ldy #VarBuffer READ Command ? lda (pData),y bne CS.RUN.READ @@ -145,7 +143,17 @@ CS.RUN ldy #bPause jsr ERR.Print bcs CS.RUN.EXIT.RTS -.11 ldy #CSH.hBuf batch mode ? +.11 ldy #bPause + lda (pData),y + bpl .13 + + >SYSCALL GetC + bcs .8 + +.13 jsr CheckSleep + bne .8 + + ldy #CSH.hBuf batch mode ? lda (pData),y beq .10 @@ -172,7 +180,7 @@ CS.RUN ldy #bPause and #$7F sta (pData) - jsr CmdBuffer.Normalize + jsr Cmd.Normalize lda (pData) beq .12 Empty line @@ -184,11 +192,11 @@ CS.RUN ldy #bPause ldy #S.PS.RC sta (pPs),y -.8 ldy #bEXIT + ldy #bEXIT lda (pData),y bne CS.RUN.EXIT - clc +.8 clc rts CS.RUN.EXIT lda #0 @@ -234,7 +242,7 @@ CS.RUN.READ lda #0 CS.RUN.BATCH jsr CSH.Exec bcs .9 - jsr CmdBuffer.Normalize + jsr Cmd.Normalize lda (pData) beq .8 Empty line....nothing to do.... @@ -286,7 +294,25 @@ CS.RUN.BATCH jsr CSH.Exec pla rts *-------------------------------------- -CS.DOEVENT sec +CS.DOEVENT lda (pEvent) + bpl .9 + + + jsr CheckSleep + beq .9 + +* ldy #Sleep already set by CheckSleep + clc + ldx #4 + +.1 lda (pData),y + sbc #0 + sta (pData),y + iny + dex + bne .1 + +.9 sec rts *-------------------------------------- CS.CHARIN tax @@ -442,7 +468,15 @@ CS.QUIT jsr HIS.Quit .8 clc rts *-------------------------------------- -* PRIVATE +CheckSleep ldy #Sleep+3 + lda (pData),y + dey + ora (pData),y + dey + ora (pData),y + dey + ora (pData),y + rts *-------------------------------------- SetPWD ldy #S.PS.hPREFIX lda (pPs),y @@ -468,61 +502,6 @@ PrintPrompt >LDYA L.ENV.PS1 plp .9 rts *-------------------------------------- -* Remove extra SPACE & comment -*-------------------------------------- -CmdBuffer.Normalize - >LDYA pData - >STYA ZPPtr1 - - lda (pData) empty line...quit - beq .9 - - tax Char count - - ldy #0 - -.1 jsr CmdBuffer.Normalize.Next - beq .8 no more char, exit - - cmp #' ' skip leading spaces - beq .1 - - cmp #'#' Comment ? - beq .8 ignore remaining chars - -.3 iny add char to buffer - sta (pData),y - - jsr CmdBuffer.Normalize.Next - beq .8 - - cmp #' ' - bne .3 - - iny add One SPACE to buffer - sta (pData),y - -.5 jsr CmdBuffer.Normalize.Next - beq .8 - cmp #' ' - beq .5 skip additional spaces - bne .3 no more space, add next word... - -.8 tya - sta (pData) - -.9 rts - -CmdBuffer.Normalize.Next - txa - beq .8 - dex - inc ZPPtr1 - bne .1 - inc ZPPtr1+1 -.1 lda (ZPPtr1) -.8 rts -*-------------------------------------- CmdBuffer.CLR jsr CmdBuffer.DEL bne CmdBuffer.CLR rts @@ -554,6 +533,7 @@ INTCMDS >PSTR "CD" >PSTR "PWD" >PSTR "READ" >PSTR "SET" + >PSTR "SLEEP" >PSTR "STARTPROC" >PSTR "TIME" .HS 00 @@ -598,6 +578,7 @@ bExitOnEOF .BS 1 hCmdHistory .BS 1 CmdHistory.IDX .BS 1 CmdHistory.END .BS 1 +Sleep .BS 4 CSH.hBuf .BS 1 CSH.BufPtr .BS 2 CSH.BufLen .BS 2 diff --git a/SYS/KERNEL.S.CIO.txt b/SYS/KERNEL.S.CIO.txt index 872f92fc..ad0971c2 100644 --- a/SYS/KERNEL.S.CIO.txt +++ b/SYS/KERNEL.S.CIO.txt @@ -494,7 +494,7 @@ CIO.GetCharAtPtr1Y beq .9 iny advance to next char... bne .9 - inc ZPPtr1+1 Allow >256 CStrings + inc ZPPtr1+1 Allow >256 CStrings rts @@ -506,6 +506,52 @@ CIO.GetCharAtPtr1Y .9 clc no error, but end of string rts +*/-------------------------------------- +* # AToI +* Convert String to 32 bit int +* ## In: +* PUSHW PTR to target buffer DWORD +* PUSHW Source String (PSTR) +* ## Out: +*\-------------------------------------- +K.AToI jsr PullPtr1Ptr2 PSTR in Ptr1,buffer in Ptr2 + + stz ASCBUF + + lda (ZPPtr1) + beq .2 + + ldx #0 + ldy #0 + +.1 iny + lda (ZPPtr1),y + + cmp #'0' + bcc .2 + cmp #'9'+1 + bcs .2 + + inx + sta ASCBUF,x + cpx #10 + beq .2 + tya + cmp (ZPPtr1) + bne .1 + +.2 stx ASCBUF + jsr DEC2HEX + + ldy #3 + +.3 lda HEXBUF,y + sta (ZPPtr2),y + dey + bpl .3 + + clc + rts *-------------------------------------- TYPES .AS "-dbclssp" ACCESS .AS "rwxrwxrwx" diff --git a/SYS/KERNEL.S.CNV.txt b/SYS/KERNEL.S.CNV.txt index b808f63e..c42d858f 100644 --- a/SYS/KERNEL.S.CNV.txt +++ b/SYS/KERNEL.S.CNV.txt @@ -60,6 +60,9 @@ DEC2HEX stz HEXBUF stz HEXBUF+2 stz HEXBUF+3 + lda ASCBUF + beq .8 + ldx #0 .1 lda HEXBUF+3 save HEXBUF for 4+1 @@ -109,7 +112,8 @@ DEC2HEX stz HEXBUF .2 cpx ASCBUF bne .1 - rts + +.8 rts *.9 pla discard saved HEXBUF * pla diff --git a/SYS/KERNEL.S.INIT2.txt b/SYS/KERNEL.S.INIT2.txt index a18a4c9d..d178b8d6 100644 --- a/SYS/KERNEL.S.INIT2.txt +++ b/SYS/KERNEL.S.INIT2.txt @@ -13,7 +13,7 @@ Kernel.Init2 sei >STYA ZPPtr1 >LDYAI A2osX.SYSCALL >STYA ZPPtr2 - >LDYAI A2osX.GP.S^$FFFF + >LDYAI A2osX.D1-A2osX.GP^$FFFF >STYA ZPPtr3 jsr Kernel.Move @@ -30,7 +30,7 @@ Kernel.Init2 sei >STYA ZPPtr1 >LDYAI $D000 >STYA ZPPtr2 - >LDYAI A2osX.D2.S^$FFFF + >LDYAI A2osX.E0-A2osX.D2^$FFFF >STYA ZPPtr3 jsr Kernel.Move @@ -47,7 +47,7 @@ Kernel.Init2 sei >STYA ZPPtr1 >LDYAI $D000 >STYA ZPPtr2 - >LDYAI A2osX.D1.S^$FFFF + >LDYAI A2osX.D2-A2osX.D1^$FFFF >STYA ZPPtr3 jsr Kernel.Move @@ -64,7 +64,7 @@ Kernel.Init2 sei >STYA ZPPtr1 >LDYAI $E000 >STYA ZPPtr2 - >LDYAI A2osX.E0.S^$FFFF + >LDYAI A2osX.E0.E-A2osX.E0^$FFFF >STYA ZPPtr3 jsr Kernel.Move diff --git a/SYS/KERNEL.S.JMP.txt b/SYS/KERNEL.S.JMP.txt index c9b58aae..de310c10 100644 --- a/SYS/KERNEL.S.JMP.txt +++ b/SYS/KERNEL.S.JMP.txt @@ -52,7 +52,7 @@ K.SYSCALL.JMP .DA K.FileSearch $00 .DA K.CPrintFYA .DA 0 .DA 0 - .DA 0 + .DA K.AToI .DA 0 *-------------------------------------- .DA K.NewPStrYA $50 diff --git a/SYS/KERNEL.S.txt b/SYS/KERNEL.S.txt index b9e5b6d6..33101394 100644 --- a/SYS/KERNEL.S.txt +++ b/SYS/KERNEL.S.txt @@ -34,15 +34,13 @@ ZPPtr4 .EQ ZPKERNEL+6 >DEBUGOA jmp Kernel.Init3 - .INB /A2OSX.SRC/X.PRINTF.S .INB /A2OSX.SRC/SYS/KERNEL.S.INIT2 .INB /A2OSX.SRC/SYS/KERNEL.S.INIT3 + .INB /A2OSX.SRC/X.PRINTF.S A2osX.GP .PH $BD00 .INB /A2OSX.SRC/SYS/KERNEL.S.GP .EP -A2osX.GP.E .EQ * - A2osX.D1 .PH $D000 .DA #RRAMWRAMBNK1 .INB /A2OSX.SRC/SYS/KERNEL.S.FIO @@ -51,12 +49,9 @@ A2osX.D1 .PH $D000 .INB /A2OSX.SRC/SYS/KERNEL.S.TIME .INB /A2OSX.SRC/SYS/KERNEL.S.FILE .INB /A2OSX.SRC/SYS/KERNEL.S.DIR - .INB /A2OSX.SRC/SYS/KERNEL.S.PFT .INB /A2OSX.SRC/SYS/KERNEL.S.BIN .EP -A2osX.D1.E .EQ * - A2osX.D2 .PH $D000 .DA #RRAMWRAMBNK2 .INB /A2OSX.SRC/SYS/KERNEL.S.CIO @@ -65,14 +60,11 @@ A2osX.D2 .PH $D000 .INB /A2OSX.SRC/SYS/KERNEL.S.PS .INB /A2OSX.SRC/SYS/KERNEL.S.ARG .INB /A2OSX.SRC/SYS/KERNEL.S.ENV - .INB /A2OSX.SRC/SYS/KERNEL.S.CNV .INB /A2OSX.SRC/SYS/KERNEL.S.RUN .INB /A2OSX.SRC/SYS/KERNEL.S.EVT .INB /A2OSX.SRC/SYS/KERNEL.S.TSK .EP -A2osX.D2.E .EQ * - A2osX.E0 .PH $E000 .INB /A2OSX.SRC/SYS/KERNEL.S.JMP .INB /A2OSX.SRC/SYS/KERNEL.S.DAT @@ -84,17 +76,13 @@ A2osX.E0 .PH $E000 A2osX.E0.E .EQ * * CONTROL SECTION : .LIST ON -A2osX.GP.S .EQ A2osX.GP.E-A2osX.GP -A2osX.D1.S .EQ A2osX.D1.E-A2osX.D1 -A2osX.D2.S .EQ A2osX.D2.E-A2osX.D2 -A2osX.E0.S .EQ A2osX.E0.E-A2osX.E0 - .DO A2osX.GP.S>$200 + .DO A2osX.D1-A2osX.GP>$200 * ERROR:GP too big .FIN - .DO A2osX.D1.S>$1000 + .DO A2osX.D2-A2osX.D1>$1000 * ERROR:BNK1 too big .FIN - .DO A2osX.D2.S>$1000 + .DO A2osX.E0-A2osX.D2>$1000 * ERROR:BNK2 too big .FIN .LIST OFF