From d2f7de5190251423af45d58fa2768eb23432b3e2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9my=20GIBERT?= Date: Mon, 28 Aug 2017 17:35:10 +0200 Subject: [PATCH] Kernel 0.9.1 : Code reorganization & move to CSTR --- .Floppies/A2OSX.BUILD.po | Bin 819200 -> 819200 bytes .Floppies/A2OSX.SRC.po | Bin 819200 -> 819200 bytes INC/A2osX.I.txt | 25 ++++++---- SYS/KERNEL.S.ENV.txt | 98 +++++++++++++++++++-------------------- SYS/KERNEL.S.EVT.txt | 47 +++---------------- SYS/KERNEL.S.FIO.txt | 51 ++++++++++++-------- SYS/KERNEL.S.INIT.txt | 26 +++++------ SYS/KERNEL.S.JMP.txt | 44 +++++++++++++++--- SYS/KERNEL.S.PS.txt | 31 ++++++++++--- SYS/KERNEL.S.txt | 4 +- 10 files changed, 178 insertions(+), 148 deletions(-) diff --git a/.Floppies/A2OSX.BUILD.po b/.Floppies/A2OSX.BUILD.po index 47bb3f0746721fe0bc2ee9c736a5be0728d68de0..76bc8eda1742318b6466a86e2fbe4860a2c4b8ca 100644 GIT binary patch delta 10674 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 delta 10431 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 BGvfdN diff --git a/.Floppies/A2OSX.SRC.po b/.Floppies/A2OSX.SRC.po index 680fb626732184038623785db87c371d93184783..6f111164f88a7e136e41c4aaecbde7fc158081d2 100644 GIT binary patch delta 15713 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 delta 16211 zcmaJ|34D~r*`En)vb%4t&2H}dK3TE}S3rS~i;$4SY(Vfpmt-N4u!)=Hh}XJ6P(e|N zW{g(U9$4FI6?t+lOu|7YfXH@gY_{Qdl~nR(`!XP$ZP zdEOguth@2Xy2qE97GxH)(+#GUIBuTgF^@o)@|FmOBwxF%-(pS zE3assRAXzA^0>2$iCEt~r=_0cz2Ec>C^09&#vqqre860Ehoo4~%sG`2E@jpRF0 zfbDrtX7RG*(<`%|Uy;6pX@XC0_j^LlI%d9yS3Og5$14W;l{BB>N z?NfYuc)$~?80~Ra){L|4&rE*Qm(_lfPmcwz39WD0vTjprwTsyvjvAW)0Z%6|1x*ho!b1fMHxhVZ*Swqi}C-u zu8umETFmG~r_UaAEX)$a1N%cA&UJfs)Gb}ctTWtM4;uEf%&!Q~MLcaWGkuk?eT@#| z2?N&bXXYpQG!YyBbOi}1 zC3Ad_SKV}p91Ja59qMY_*ut#e$7J`Oz)F_%173BoscB`Xb!3lkfH{6RA2{QM$wjxM zSNw=q9d2^340VkJ4B#Kn2hM+Sa`=`!%S(zh*H0!VZ>e4VQ=GehEaYrxV5XlDXMV2B zlq9RZlBN9u5ZbRA@AV;Y_H~`JZz#^1{(vn?{z$Sw5(`=; zpFffkCs|kgr^%;|6s`TAIVaHG)UiSS{*2Yux45%GjCuQ6{M-1|FohdCz|3bAUozjB z%s-l8eOJGt;=fEb9xcj$Pfe!%Ro;E`&{)66FE2FUuV>5OpFD7MS;pTWh~ECgigDrl zEc;;c#iLoDytOPXFcMO8tmuE0%+jC7Po>xYT~SJ>TE&q}`hM4W&YL(*Zl1i5JpU72A`xqSP?+-bF?;PodzJbKYV(w)LJO&Cr zJOEv(W#tPdpFdURSQsPqD&nR}O~+4{Y>ADL%B97{7`kpV(@-SQmWTn`M6&`|Sw)i; zgDZ%SajpiN>Yqr(Z)zN(vo9D;jP?Wk!_2aUhVGN+Ng8pfIBea z_exPTr^G0ovjfwqFWsF{Xf9#X&XyjQR>~UdM#i={o9k|M_N+fp(p+0x%hJl2aJ|j# zF%{*Lo*(5;CcR+h74*yE?rZLBU&qQS<@gmZm|{w+=x1zm%Vt(mEk`F_@Wu9S>SCpf z&Iu!|*J2{{Nt zON&ctTbbRXta^vD%^PU+?{qe@`0Y9@se3;J$u_{F_{ws;SOj}cMyqjj6eHZF;S=$W)$ePqMvyYS= zLn9a(9hOdGls359P*2Tos3$Xx(M*8UKCs`z%zJRqv0-N3OSWb|%igD`t}u41fP3Ar zd$eYMCCeF?I;+!g%-QG;6;&0lSzA(A#LBJ_k9G6XZP&uHHaAAn3Vt=QwCm=L_cpPN z>*tO3^t3m#^c&`nV>lxyTs=J9a-%XKSs`&z56^TQn0Gmu2gMCNJY(@89Mv{4=Uz;Q zF>1d_G1)MwFwdDcOJ}%{<=nzW$jh^0j{q?1s5pmBQf{4N3Nvq$(1px&j5fKQrXyUN z`3^D;``M~H32fzx<77o5<`X6rzT)ywIkVrTY>eTdal59wfi-7J5|VzVms?_sQsY=v zs5lfM>RTa(W*RIGkq@jARaIw)LQd5&$7-555YFW<@wZLZY0!^gJrrER&H%;~C~ zib8MbDa*;4vxa82xBKAWnJJr1Gc51a^x zJf?JF1vBNdY4O_PxSTBsh=f#JRbI~GVbD}u1^Zu$4RXq4oHToMNkP{Lj>Zzo*|c}W z4;!#!2dk(cQYktzPJPE^JR?{Me16XX5Xnqcz?WamoOQ0L?L&cC$Ox42HGr2YTF)F# zfYwb#%gtgY61v-|14%bp3uh)_56wfj@ z%Co?Svp4=7U$mKj|utA@#tDEqR)P%;! zX-J@z0IFDJkQlj>47NgjBRh8vdqX>hJv&*>1?Pj)ulqtE%3dwvxA82#R+Mk!H93t2 zNiMc{9o-Wh**id03$PtV}m3Bj3K%HL-I<*L2C`KH$#Xgfki9G8e6R zvyz+miy`cz=KXMw%UI18vGqz`)ts~Szw8N7%DUvgQ5t`#P7Oq==5q1emAtxm8_{tE z1MB8XmONhdl_JH%s~SB3%-aq?*VO3X_~9|nUT>&>kKgb01t4?etaAJ3vmV|R+~4D6 z#RK9x4=>_g@qmZdAQ_xy4LcdUWwZ$V-owkCgZg!@sD)(0%X^V$;2&lh!m1Tl&DljP z-OejAc46wmVIZV)MCx>4JFm*vZD4dMjLhT%e94G7vz-^WU5#a~snwm$TN~RUj=BP- z`i+gcy!&Jz0_&`e0h7!L*!sX6K8yT*zTCEK&m6H5JNkK9!d`=dI##w%O!xDWg1m9; zd!Fkbq|I3QHR5+z7`zsQYS%GD

EUnE84pW5UcEqU`;wh$jRM<48&8jYKYj+Xj{t zGR9S8bU>ehVLgZ~5)K*DjaW7jUKUI`Y)o7tBdVKb*WFC(ZZW2>z`7%tB#VOx>L@0y zx6%#Ec<44J15xWSItk?$=G)bX`3`lUj60(aWC+dzmU&!oFV7g94AW$~3%GOdX4By- zo2xvIDdX;dr^UC|NmnNb0i|=ybPo{NrhyD(^eO31m+9dfbU2j@&mGiXdcG-p!TQnfPYlhKodJzWri1N!8rq9;i!56Y=! z%<^egwV3KCw$I2=qGykB+W3>RVMO)A;<_EYD*dw&0fgldR&^PzEdQK%Y6mY{^#$cM zl^b?dGVM{YOXjvHY#7!?R}J$QnM`9%kAq9qPl&voysGt7G!QZr^J%71)-UN|0Z;a2 ztkBNTUNWCD%@Ciz0?#H(D7jx1$9D3ZuCEz;LtR5f7Z!zf$TZ*dB%tkISCkrxij5MU zGKBC#2;n#M-B4(G8t_HWh!1xnn)#-IlbODS;oN6wtL&VtZyVzi`@Eq+GHXSf8+$J- zV&%^Z&mb?0{SKh3zAJ7U&rg3f@}6JQ@44>x;?k?Q%k?@oal8SMQh2E7 zg8%DS`X7|axSgAPV{!{wk16|;cOy-v`(^)LDy`xUA5`1K3j(62Uup_+C_Lswc)f2`CTl@ z6j4N|XId<#We~<}agj5WotndQCJQjyt=zdJsw%{6no1;$N&_>;s|u1S0Si(SaT`mc zRzMrh#u5yaHVqE=S)8X_iJCniTHW*IZ(5;1xIg_wLyCKOO=O|BhP7*ipU zS0ph9^%5HLJ#(>M4=d4=?^1wem&rs~u5@p8Z*1#zw)FPmz^%+&4h-aqDipk>lIzyA z3Z=>7(5&x>uciT&l;zc+{I#{FF?3<5r>{38p7-(O#6@ae=4K^M@dqC-Ubz@>P43Xj zkPoFtWxy=8Tv^>57nh|6<(rO0_#qd|s1uDNJl$3g_UQg<2@X=U6cxPe3|Y;yEkg=S z@rqG3t6wfYF~aMTR}hz|c4TV6lJu40l@Xq{e3gE_3-t5ZFO=sq6rH?d{OX7ku2Clx zi>~77>1!j7W@*&vU$jna9pyEM)(?-u>NSfmj3T{ml@~Z!c+@Ul9px#(HqfB0*J~n& zn7LiiVcww9{e%u)b$d^5`{u^J7H00$%ZMAXAIYQg>8dorEM0odF})kb+sNQvh3wWI z%&W@qMd8YDkV?aOy;z{CHKEOoots)hs5OS|u-!ecJZ$b$gg7?I+DH@`S(}Zjz}$!< z`(nu6C`IWLLt`Nye6%HYCdSVPELpkf%EO=@M%AX4y$G4doT!_H#MRewzr6;DEoG2u z{;8**`R4t2r8y_8_w&C`Cdb6)MlOLrL;=mW(_4dIfua6g;@tJTDr;#`B#y`hV#y6W zkX1ohEzHn78V-olH}LPQ&O$aQYsOJDHVzCh3(63P6ArPoRczksgDmp`R&|efrr+!c zCSQo3N|HyLy?dEs4gRJoLCfC2#+`m=`v9sSYuWwG(a5TtF2v~w0o=q0XDiEF2Vhwc zr?s#g2X}e{A!9b93A2=e8}N9QYU%1@In6XqQA*uJP!5H>KF{`H??7k`%W9PcbTBxH_j(Q?b?bwJhDm7G$%G)QyXzBtD+1;2pKi^F~n0H=;dAaY3 z3Ar+KQ3&F-W6$t#O^DJW*p_{veM5o4P*V_ZQ@vP|>;`u!t?#kHf;zV#xnWhz)rpg?w{ox>dKn3Bc z-Z_FuVp_99IB(?D%aA+DlS^(fGcraxdJ>XG{p7eQmV|6k9$Z0H42#=u|v&B*!0Y~gZ$>$ z%=4(4H~q()RHX@{y*|ab^SOq?W3PtdeC9s{=}JW}t>c!A07TW2+*eo;H}kM9Db4 z+Hb#FM;5PR!*Q$p;=ZH2(h}yIc;P57uOZ&0fpx4Zaa`}yM$U`IM~$d z&xhiMxhOmVmK{WJ-4^r)BDsMQ0(M{yR zF&be5Gb2ft(F+oE0=3+v=LyL-BmU1U4t0)r21piI{4KMoLdg+v&27AR(NTyCac3RE zn7*w&EeEK;l6Gsv=*I45HJWpq`2KA?yYyH@T9JNxl(>aDy}q4+L6&=mupZ+%);sm2 zWBGAWdyFr0Oe(3@khtr2zxZykZNWmPWlGJY3h~4-?zjwzISICTn*PNr^}RaRafwOy z8GLdFz~*>l=+ZLc0o!yxxRifFNfR;~r@ODQuUh>h^OEX%mj8e#yq)KzJcwl!k5gIo zAt-LeC&fj#L-{{tUO??83*F|p9 ze@&T7>yw7f&3cNe^ z`hGuB`*6$K^zbCFE$CqN%$ZT(f8F;aOC;(f4G+$*E@U(v< z+4$3}Y?zVd_seqKoBAap)o0pU;cH2L8$VTrRX(BEk>Bfdh3^O1zEoi(`6Le(B=(Sp z5VQUjYXwP9@%!SjNnW%LDZGUIK)*@k@Y0a|UB8Eff5>}i8tfY%W$_=*UP8)0b^e{a zi*M%q%v<~%KXaCUIcNFaRp^shY(wkOkrmW>6xpG)VPg+X7Oj#OL6}VG4S; zd-`{Uyna94srp9-yv$ss^QT(Blp3JTT|@zr@K||zsuj;pvOLVpiON)^~UAQ)ql&;z`bT};o zjTP!9Y?%>F7xh$n$2+tET>$Yoib%Fs?fVg zz^+Q{W2>Td5xZNfV~l&Ri4nFLe&*yorr2`BrL&ZebTuJc)zjFwo>~5--&euEnP@m+ z%8U6A6R#DTQyngr{IRqeot^989KoWTbK>Jan6nGQbuVV3vR6`!@y;$SKYsXzldjypp@%B*vjIN619SkM-nUT| z?8NRV8);9O^upv(Z-*V3Y~&I|@p;|AQ%kS4!ZWAOUt-@%)-R$0hQnW?4sX6x_aaC^<PJ zs7l;{e^DwPZ6a%J+Zn~5CYC&?_-`aADaf@9Q{U4RTHnr+kyM2d;2O-ssxFo8b|oS)Riy?3Nxzt4+qp)o!A4dDDh*Mx3@fVXLIXn25G_kaoLE5J4G#jg=^0W5LfBBYekJ-8tR z`TMaB4=DW}AC)_iHY#&HCeuh(J1!cZi(PEFM(t94tr&kUwkqkmD7R2AR^A4vjNBWS zU=JG1l^H*kXee9LqnmK7Y64j-;eeqg&`H}tgW+l+O9fE_-hQJ1)U-$zKdcjBCw*9F z^-XNHWO77>qUM`tTnG3{e&&L>*ZgyPfL$zgi6l~d_*mQr=b44xLq28}J|34Hv(N-V zoXI;C_g2gTBw6C6bv!dQ;tkZSr&^`cqT$PNC3(oSSO!uo-F>-r3#3(mx>z zPsgPOWuBFBA`BGe;}ah+E)(L(5+1@|%`NLTwRI!^{uFKi#gXWK=1-qz(D50t9Cf1( zr;^LwJw9eSNi2VuIZGQXAs>Y$URNP9$PODAG=$$OZ~U5Q%iCNThQ%64^+RNY~s*q&pmm^vFo$k!tEa zoaiUf55aVd`TNmfwp4H^mu1COZy^?@1Gr~S_m`a+XqT3wI}o-5N|=JI7O`29DhCersQ|yW|H4E zzt_UoompZz#|w?vPsLxkM*Nj0<1fTj$HiYS)-pxf41Ws`BrnhK6c3{*o3dUXlbOC< z{VmIGsA22*QC7crX3CnGJ`g=i^{72#&PH)$+WMv~1C?OH8h)gjIdHG_`UNLXSZ@f1 zyt_xy7BDtEf<$ow_D=;?)MG=;S7`$?-=xQJH%G;Bw@-QDY% z83jBU?%t(>tMn-f-$;(4!nbAji1%`|rB$fjN%>oX$C3bIcr=#7z0e7Dw4IIaJ_HSE z_lfRYEtQ&Wq>3$JDR3^)(PbLk%KVk~2X&{bxFH`@;BlDtNuB;$mI9|Ui)ygR%}nq( zto}3TVG}Y!GS-SWa<$xKgvu6p8fa{YB|gliPv&W5)$$V=im#Xkmm@i~lsQnjle(e@ zUdUD1g`XFznzakkzn~v|nbBzWDE6#*OdM<0s$)^MV`Yzvr<=7>+Y<_h5f!GLl4a}5 zQ%@T)M?^JP`w}rowJxEQ$IPhVQLA?v%6Jh+)GOk46!oIc2kY`xta5%$>}b&z?RqkL zXUEsW#fWD3P&7-SSL&(R4Zne<_NSvZq66EXnYWAfO{^k`gJu5~ZTPJC7#mi8J98`QYCNc=``02Z%VnJ224hWA+y?OplARPXhKI&BK6dA>A~~ zc#)z^Bbylnik7K1EjIWPPC{z20?P9fY?kuVNCr^Wll-%2GEF}RnEe+~U@|-U<-E;P zf321pf&2RI&SsYP8*GUf3E8aQD_Wbi!C#R07_Fn!Istze zhKHv&zen?U)%q)d&F?D_Pyd^!ZP(K3KbXhG^uMb-su%Bc^t}stCc^R$8XjlWABypI zt;+V#St33H-l~6zFSToxIsaDZQ~ndl7cvrP0228fD4iv4&>XSnuq2m>iVa#0=VEt< zR#X+EKC7^x?+4#wg_s>x4@$$7GhZT25jo?GSaIhDExiz3Kg^C!A1RUYS|p4a9Y54M zlV%m~VY{_x^ijD63Uct7wUUEq_Axj}{XS;YHAwGM(BTsy_|2d?S>$zSRa?;C!{Smn z>^w80hliZ5HPxuRplBg`N0ZV~m7tVS)gH4@yExd6^e&_q`{-hJV2+tl%b=P@O_q4F zQ>%_c;|@#D;lkCfIWp4FvqKbz5jlItwz8ajk-1UJ<^^KuMy)A`Mja`@P$RVKFgrSQ zA_yltl7?oT`Djekx|3EG1+AO6G<5BpX90S6n4?nFro#HX1*}P{Ixl=R;8SX%Ho)zt zEjll-6TsSH0+ta{S*_^q(n`x*io>aOe3l8leeRp6B4n;tyen8D?(Nd@>z67{L;*4f z`gl~j6Y;paTrJFAAntHu(bMTNqV+NLd|qA{;+?P4s$g ztq~luv~>zgYjRT26cshg1@88Axy=nd??f439)>X=eHEnB{ zKPG&b#w?do&>w`NYnNe06{l?Y;w&6RQzl~D7BN7nf&B7JkG}Bb8MAtbrKG&(?Yds} z8+vIO(94wRURgVwYe?I6aIyI!tx9ZrR?{{&;lr4*Pz6518oTszd=`Y>TfH?c#4-oL z{n_3$Wnd}kN*Gd5@@7)50#s8I6n<<^f4_HZjAic|V$s%SBD8pyk1GZ>;m2^^V z6W^(!+u=O7JRZK~lxvV)4DO$hUmr*!9oN#xxEdiBfF#6m9gTTr$B?ktu7~M~c!EIn vGpH+uk~Dk_cOw@s{l=6%lijQRv4JSTYA ZPPtr2 - stz K.Buf256 init Expanded String len=0 - stz K.ExpandPStr.bFound No var found yet + stz K.ExpandStr.Len init Expanded String len=0 + stz K.ExpandStr.bFound No var found yet - stz K.ExpandPStr.bNoExp Reset no expand flag + stz K.ExpandStr.bNoExp Reset no expand flag ldy #0 -.10 stz K.ExpandPStr.Name - stz K.ExpandPStr.bInVar +.10 stz K.ExpandStr.Name + stz K.ExpandStr.bInVar -.11 tya - cmp (ZPPtr2) End of PSTR? +.11 lda (ZPPtr2),y End of CSTR? beq .8 iny - lda (ZPPtr2),y cmp #''' bne .21 - lda K.ExpandPStr.bNoExp + lda K.ExpandStr.bNoExp eor #$ff - sta K.ExpandPStr.bNoExp toggle flag + sta K.ExpandStr.bNoExp toggle flag bra .11 -.21 bit K.ExpandPStr.bNoExp +.21 bit K.ExpandStr.bNoExp bpl .23 -.22 ldx K.Buf256 - inx - beq .8 +.22 ldx K.ExpandStr.Len sta K.Buf256,x - stx K.Buf256 + inx + stx K.ExpandStr.Len bra .11 -.23 ldx K.ExpandPStr.bInVar already in a var? +.23 ldx K.ExpandStr.bInVar already in a var? bne .3 yes.... cmp #'$' no, found one ? bne .22 no, store.... - sta K.ExpandPStr.bFound Toggle flag - sta K.ExpandPStr.bInVar + sta K.ExpandStr.bFound Toggle flag + sta K.ExpandStr.bInVar bra .11 skip this char .3 cmp #'{' we are in var, "{" after "$"? bne .31 - ldx K.ExpandPStr.Name No char in var yet ? + ldx K.ExpandStr.Name No char in var yet ? beq .11 normal, "${" syntax is ok,skip bne .5 not allowed char in varname, end of var @@ -71,59 +68,59 @@ K.ExpandPStr.YA stz K.ExpandPStr.hPStr Reset Intermediate string... .31 cmp #'}' end of var? beq .50 - jsr K.ExpandPStrValidChar + jsr K.ExpandStrValidChar bcc .32 yes, add to varname - ldx K.ExpandPStr.Name + ldx K.ExpandStr.Name bne .5 varname has already chars...end of var inx must be a $? or ?x.....go expand - stx K.ExpandPStr.Name - sta K.ExpandPStr.Name+1 + stx K.ExpandStr.Name + sta K.ExpandStr.Name+1 bra .51 go Expand.... -.32 ldx K.ExpandPStr.Name +.32 ldx K.ExpandStr.Name inx cpx #16 beq .11 varname longer than 15....ignore - sta K.ExpandPStr.Name,x - stx K.ExpandPStr.Name + sta K.ExpandStr.Name,x + stx K.ExpandStr.Name bra .11 .5 dey last char was invalid...move back -.50 ldx K.ExpandPStr.Name +.50 ldx K.ExpandStr.Name beq .52 var name is empty...start over .51 phy save current index - jsr K.ExpandPStrGetValue + jsr K.ExpandStrGetValue ply restore index in string... .52 jmp .10 reset start flag and continue -.8 ldx K.ExpandPStr.Name end of PSTR,are we in a var? +.8 ldx K.ExpandStr.Name end of PSTR,are we in a var? beq .80 no...exit... - jsr K.ExpandPStrGetValue yes, expand and add to STR + jsr K.ExpandStrGetValue yes, expand and add to STR -.80 lda K.ExpandPStr.hPStr working from our temp string ? +.80 lda K.ExpandStr.hPStr working from our temp string ? beq .81 no... jsr K.FreeMem.A yes, discard.... .81 >LDYAI K.Buf256 - jsr K.NewPStr.YA + jsr K.NewCStr.YA bcs .9 - stx K.ExpandPStr.hPStr save this as temp string, in case of recurse - ldx K.ExpandPStr.bFound Did we expand something ? + stx K.ExpandStr.hPStr save this as temp string, in case of recurse + ldx K.ExpandStr.bFound Did we expand something ? beq .82 jmp .1 Yes, start over with hPStr -.82 ldx K.ExpandPStr.hPStr +.82 ldx K.ExpandStr.hPStr * or exit with Y,A from K.NewPStrYA .9 rts *-------------------------------------- -K.ExpandPStrValidChar +K.ExpandStrValidChar cmp #'0' bcc .9 cmp #'9'+1 @@ -142,11 +139,11 @@ K.ExpandPStrValidChar .9 sec rts *-------------------------------------- -K.ExpandPStrGetValue +K.ExpandStrGetValue jsr ENV.ExpandSysVar bcc .9 - >LDYAI K.ExpandPStr.Name + >LDYAI K.ExpandStr.Name jsr K.GetEnv.YA bcs .9 @@ -156,11 +153,12 @@ K.ExpandPStrGetValue .9 rts *-------------------------------------- -K.ExpandPStr.bNoExp .BS 1 -K.ExpandPStr.bInVar .BS 1 -K.ExpandPStr.bFound .BS 1 -K.ExpandPStr.hPStr .BS 1 -K.ExpandPStr.Name .BS 16 +K.ExpandStr.Len .BS 1 +K.ExpandStr.bNoExp .BS 1 +K.ExpandStr.bInVar .BS 1 +K.ExpandStr.bFound .BS 1 +K.ExpandStr.hPStr .BS 1 +K.ExpandStr.Name .BS 16 */-------------------------------------- * # PutEnv.YA * ## In: @@ -332,19 +330,19 @@ S.UnsetEnvPtr1 jsr ENV.FindVarPtr1 *-------------------------------------- * ENV.ExpandSysVar * In: -* K.ExpandPStr.Name +* K.ExpandStr.Name * Out: * CC: Found * Append VALUE to K.Buf256 * CS: Not Found *-------------------------------------- ENV.ExpandSysVar - ldx K.ExpandPStr.Name + ldx K.ExpandStr.Name cpx #1 is name 1 char? bne .9 ldy #1 - lda K.ExpandPStr.Name+1 + lda K.ExpandStr.Name+1 cmp #'0'-1 $0...$9 ?? bcc .1 cmp #'9'+1 diff --git a/SYS/KERNEL.S.EVT.txt b/SYS/KERNEL.S.EVT.txt index 1d9c297b..93b58493 100644 --- a/SYS/KERNEL.S.EVT.txt +++ b/SYS/KERNEL.S.EVT.txt @@ -20,7 +20,7 @@ EVT.GetEvents lda #EvtMgr.Table bpl .10 no, regular poll lda K.IrkMgr.VBLINT - beq EVT.GetEvents.DEV no + beq .3 no dec K.IrkMgr.VBLINT bra .11 @@ -28,17 +28,17 @@ EVT.GetEvents lda #EvtMgr.Table .10 lda VBL get VLINE status tax eor EvtMgr.VBLState - bpl EVT.GetEvents.DEV no change,no tick + bpl .3 no change,no tick txa sta EvtMgr.VBLState save new - bpl EVT.GetEvents.DEV Up2down transition,no tick + bpl .3 Up2down transition,no tick .11 inc A2osX.TIMER16 bne .1 inc A2osX.TIMER16+1 .1 dec EvtMgr.HZ.CNT - bne EVT.GetEvents.DEV not yet 100ms + bne .3 not yet 100ms ldx A2osX.HZ stx EvtMgr.HZ.CNT @@ -54,43 +54,8 @@ EVT.GetEvents lda #EvtMgr.Table ora #S.EVT.F.T1SEC .2 sta (pEvent) - jsr EVT.GetEvents.Add -*-------------------------------------- -EVT.GetEvents.DEV -* >LDYAI DevMgr.Table -* >STYA pDev - -* stz EvtMgr.Idx - -*.1 ldy #S.DEV.F -* lda (pDev),y get S.DEV.F -* bit #S.DEV.F.EVENT -* beq .2 EVENT enabled ? - -* ldx #DEVMGR.GETEVENT - -* jsr pDevJmp Call DRV GetEvent function -* bcs .2 no event - -* ldy #S.EVT.hDEV -* lda EvtMgr.Idx -* sta (pEvent),y - -* jsr EVT.GetEvents.Add - -* bcs .8 Event Q is full, exit now with CC - -*.2 lda pDev -* clc -* adc #S.DEV -* sta pDev -* bcc .3 -* inc pDev+1 -* -*.3 lda EvtMgr.Idx -* inc EvtMgr.Idx -* cmp DevMgr.Count -* bne .1 + jsr EVT.GetEvents.Add +.3 sec lda EvtMgr.Count if 0, exit with CS (from cmp), and A=0 "no event" beq .9 diff --git a/SYS/KERNEL.S.FIO.txt b/SYS/KERNEL.S.FIO.txt index 06832911..f0f3ee78 100644 --- a/SYS/KERNEL.S.FIO.txt +++ b/SYS/KERNEL.S.FIO.txt @@ -95,43 +95,54 @@ K.FileSearch.I >PULLW ZPPtr4 ZPPtr1 trashed by ExpandStr.YA */-------------------------------------- * # GetFullPath.YA * ## In : -* Y,A = Filename (PSTR) +* Y,A = Filename (C-String) * ## Out : * CC : success -* Y,A = FullPath (PSTR) +* Y,A = FullPath (C-String) * X = hMem of FullPath * CS : A = Error Code *\-------------------------------------- K.GetFullPath.YA - >STYA ZPPtr3 Ptr1 & 2 used by StrCpy - lda (ZPPtr3) - beq K.GetFullPath.YA.9 - + >STYA ZPPtr1 stz K.Buf256 + + lda (ZPPtr1) + beq .8 + - ldy #1 - lda (ZPPtr3),y + ldx #0 + + lda (ZPPtr1) cmp #'/' full path starting with '/'? - beq .1 yes, do not append to current prefix + beq .2 yes, do not append to current prefix ldy #S.PS.hPREFIX lda (pPs),y jsr K.GetMemPtr.A - >PUSHYA - >PUSHWI K.Buf256 - >SYSCALL PStrCpy + >STYA ZPPtr2 -.1 >PUSHW ZPPtr3 - >PUSHWI K.Buf256 - >SYSCALL PStrCat -K.GetFullPath.YA.NewStr + ldy #0 + +.1 lda (ZPPtr2),y + beq .2 + sta K.Buf256,x + iny + inx + bne .1 + +.2 ldy #0 + +.3 lda (ZPPtr1),y + beq .8 + sta K.Buf256,x + iny + inx + bne .3 + +.8 stz K.Buf256,x >LDYAI K.Buf256 jsr K.NewPStr.YA rts - -K.GetFullPath.YA.9 - sec - rts */-------------------------------------- * # LoadFile * ## In: diff --git a/SYS/KERNEL.S.INIT.txt b/SYS/KERNEL.S.INIT.txt index 119d0292..53299093 100644 --- a/SYS/KERNEL.S.INIT.txt +++ b/SYS/KERNEL.S.INIT.txt @@ -31,8 +31,8 @@ Kernel.Init2 >LDAXI MSG.Init2 jsr PrintFAX sta SETALTZP - lda RRAMWRAMBNK2 - lda RRAMWRAMBNK2 + bit RRAMWRAMBNK2 + bit RRAMWRAMBNK2 >LDYAI A2osX.D2 >STYA ZPPtr1 @@ -48,8 +48,8 @@ Kernel.Init2 >LDAXI MSG.Init2 jsr PrintFAX sta SETALTZP - lda RRAMWRAMBNK1 - lda RRAMWRAMBNK1 + bit RRAMWRAMBNK1 + bit RRAMWRAMBNK1 >LDYAI A2osX.D1 >STYA ZPPtr1 @@ -65,8 +65,8 @@ Kernel.Init2 >LDAXI MSG.Init2 jsr PrintFAX sta SETALTZP - lda RRAMWRAMBNK1 - lda RRAMWRAMBNK1 + bit RRAMWRAMBNK1 + bit RRAMWRAMBNK1 >LDYAI A2osX.E0 >STYA ZPPtr1 @@ -100,7 +100,7 @@ Kernel.Init2 >LDAXI MSG.Init2 Kernel.Init3 sta SETALTZP bit RRAMWRAMBNK1 bit RRAMWRAMBNK1 - + jsr MemMgrInit jsr PS0Init bcs * @@ -147,6 +147,7 @@ Kernel.Init3 sta SETALTZP >LDYAI STARTUP.CMDLINE >SYSCALL ExpandStr.YA phx Save Expanded CMDLINE for discard + >SYSCALL CreateProcessYA bcs .9 pla @@ -168,7 +169,6 @@ Kernel.Init3 sta SETALTZP >LDYAI MSG.StartupErr >SYSCALL PrintF.YA bra * No need to discard Expanded CMDLINE - *-------------------------------------- Kernel.Move ldy #0 .1 inc ZPPtr3 @@ -768,7 +768,7 @@ TskMgrInit >LDYAI TskMgr.Table+S.PS Clear whole process table except PS0 bne .1 >LDYAI K.ENV.SIZE get a buffer for ENV - >SYSCALL GetMem0.YA make sure blank!! + >SYSCALL GetMem0.YA make sure blank!! bcs .9 txa @@ -781,7 +781,7 @@ TskMgrInit >LDYAI TskMgr.Table+S.PS Clear whole process table except PS0 bcs .9 >LDYAI K.Buf256 - jsr K.NewPStr.YA + jsr K.NewCStr.YA bcs .9 txa @@ -818,8 +818,8 @@ MSG.IRQ >CSTR "-Interrupt Manager...\r\n" MSG.EVT >CSTR "-Event Manager...\r\n" MSG.FLT >CSTR "-Path Filter...\r\n" MSG.TSK >CSTR "-Task Manager...\r\n" -MSG.Prefix >CSTR "Prefix:%S\r\n" -MSG.Startup >CSTR "Executing Kernel Startup Script...\r\nCmd:%S\r\n" +MSG.Prefix >CSTR "Prefix:%s\r\n" +MSG.Startup >CSTR "Executing Kernel Startup Script...\r\nCmd:%s\r\n" MSG.StartupErr >CSTR "Failed : [$%h]\r\n" MSG.Init3.OK >CSTR "A2osX[Stage3]:Complete.\r\n" *-------------------------------------- @@ -850,7 +850,7 @@ I.ENV.A2osX >PSTR "A2OSX" I.ENV.PATH >PSTR "PATH=${A2OSX}SBIN/;${A2OSX}BIN/" I.ENV.LIB >PSTR "LIB=${A2OSX}LIB/" I.ENV.DRV >PSTR "DRV=${A2OSX}DRV/" -STARTUP.CMDLINE >PSTR "${A2OSX}SBIN/SHELL ${A2OSX}A2osX.STARTUP" +STARTUP.CMDLINE >CSTR "${A2OSX}SBIN/SHELL ${A2OSX}A2osX.STARTUP" *-------------------------------------- MLIOPEN00 .DA #3 .DA A2OSXCONF diff --git a/SYS/KERNEL.S.JMP.txt b/SYS/KERNEL.S.JMP.txt index bf3566bb..6c243b61 100644 --- a/SYS/KERNEL.S.JMP.txt +++ b/SYS/KERNEL.S.JMP.txt @@ -48,9 +48,9 @@ K.SYSCALL.JMP .DA 0 $00 .DA K.Rename .DA 0 .DA 0 - .DA 0 - .DA 0 - .DA 0 + .DA K.GetDevByID.A + .DA K.GetDevByName.YA + .DA K.GetDevStatus.A .DA 0 .DA 0 $50 @@ -95,9 +95,9 @@ K.SYSCALL.JMP .DA 0 $00 .DA K.CTime2Time .DA K.PTime2Time .DA 0 - .DA K.GetDevByID.A - .DA K.GetDevByName.YA - .DA K.GetDevStatus.A + .DA 0 + .DA 0 + .DA 0 .DA 0 .DA K.ExecProcessNewEnv.YA $A0 @@ -111,7 +111,7 @@ K.SYSCALL.JMP .DA 0 $00 .DA K.GetArgC $B0 .DA K.GetArg.A - .DA K.ExpandPStr.YA + .DA K.ExpandStr.YA .DA 0 .DA K.PutEnv.YA .DA K.SetEnv @@ -451,6 +451,36 @@ K.NewPStr.YA >STYA ZPPtr2 clc .9 rts *-------------------------------------- +K.NewCStr.YA >STYA ZPPtr1 + lda (ZPPtr1) + inc + tay + lda #0 Y,A = len of new string + jsr K.GetMem.YA + bcs .9 + + >STYA ZPPtr2 + + lda (ZPPtr1) + tay + phy + beq .2 + +.1 lda (ZPPtr1),y + dey + sta (ZPPtr2),y + bne .1 + +.2 ply + lda #0 + sta (ZPPtr2),y + + >LDYA ZPPtr1 + + clc +.9 rts +*-------------------------------------- + MAN SAVE /A2OSX.SRC/SYS/KERNEL.S.JMP LOAD /A2OSX.SRC/SYS/KERNEL.S diff --git a/SYS/KERNEL.S.PS.txt b/SYS/KERNEL.S.PS.txt index da04cfc1..a5518d24 100644 --- a/SYS/KERNEL.S.PS.txt +++ b/SYS/KERNEL.S.PS.txt @@ -32,6 +32,8 @@ K.CreateProcess.YA sta .8+1 + >DEBUG + jsr PS.Init bcc .8 @@ -233,10 +235,10 @@ PS.CreateChild >LDYAI TskMgr.Table+S.PS .9 rts *-------------------------------------- PS.Init >LDYA K.CreateProcess.CmdLine - jsr PS.Str2StrArray.YA + jsr PS.CmdLine2Args.YA bcs .9 - phy save PTR to StrArray... + phy save PTR to Args[0]... pha txa @@ -271,7 +273,24 @@ PS.Init >LDYA K.CreateProcess.CmdLine ldy #S.PS.hDS sta (ZPPtr3),y save DS hMem in TSKSLOT -.2 +.2 ldy #H.BIN.EXE.SS.SIZE+1 + lda (ZPPtr4),y Load DS.SIZE HI + tax + dey + ora (ZPPtr4),y + + beq * DS.SIZE=0!!!! + + lda (ZPPtr4),y + tay + txa Y,A = DS.SIZE + jsr K.GetMem0.YA + bcs .9 + + txa + ldy #S.PS.hSS + sta (ZPPtr3),y save DS hMem in TSKSLOT + clc .9 rts @@ -354,8 +373,8 @@ PS.DupEnv.A jsr K.GetMemPtr.A clc .9 rts */-------------------------------------- -* # Str2StrArray.YA -* Convert a CSTR (e.g. : command Line) to a Array of CSTRs (Args[]) +* # CmdLine2Args.YA +* Convert a CSTR (e.g. : command Line) to Args[] * ## In: * Y,A = PTR to String * ## Out: @@ -365,7 +384,7 @@ PS.DupEnv.A jsr K.GetMemPtr.A * CS : error * A = SYS error code *\-------------------------------------- -PS.Str2StrArray.YA +PS.CmdLine2Args.YA >STYA ZPPtr1 lda (ZPPtr1) Get mem size STRLEN+1 inc diff --git a/SYS/KERNEL.S.txt b/SYS/KERNEL.S.txt index 0c5c5d4f..1e6f4029 100644 --- a/SYS/KERNEL.S.txt +++ b/SYS/KERNEL.S.txt @@ -33,19 +33,19 @@ A2osX.D1 .PH $D000 .INB /A2OSX.SRC/SYS/KERNEL.S.DIRENT .INB /A2OSX.SRC/SYS/KERNEL.S.FIO .INB /A2OSX.SRC/SYS/KERNEL.S.PFT + .INB /A2OSX.SRC/SYS/KERNEL.S.DEV .EP A2osX.D2 .PH $D000 .DA #RRAMWRAMBNK2 .INB /A2OSX.SRC/SYS/KERNEL.S.STRING .INB /A2OSX.SRC/SYS/KERNEL.S.STDLIB .INB /A2OSX.SRC/SYS/KERNEL.S.TIME - .INB /A2OSX.SRC/SYS/KERNEL.S.DEV .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.RUN .INB /A2OSX.SRC/SYS/KERNEL.S.EVT .INB /A2OSX.SRC/SYS/KERNEL.S.TSK + .INB /A2OSX.SRC/SYS/KERNEL.S.RUN .EP A2osX.E0 .PH $E000 .INB /A2OSX.SRC/SYS/KERNEL.S.JMP