From cc023c06a4bb0a04f735e06696a484c83250b321 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9my=20GIBERT?= Date: Mon, 4 Feb 2019 16:37:15 +0000 Subject: [PATCH] Kernel 0.92+ --- .Floppies/A2OSX.BUILD.po | Bin 33553920 -> 33553920 bytes BIN/SHELL.S.IO.txt | 6 +++ INC/A2osX.I.txt | 2 +- SYS/KERNEL.S.IO.txt | 9 ---- SYS/KERNEL.S.JMP.txt | 2 +- SYS/KERNEL.S.STAT.txt | 95 +++++++++++++++------------------------ 6 files changed, 43 insertions(+), 71 deletions(-) diff --git a/.Floppies/A2OSX.BUILD.po b/.Floppies/A2OSX.BUILD.po index d6d2ba8004e7aef7b15965a87abc5101fda2f0cb..4c3136548f7aca3430ddd6b1340358c52070f82a 100644 GIT binary patch delta 5737 zcmZwK3tUuX`Umj$%$b1!VHj>QsL&DehB)4+(3HHOLZG5hu9w;&BnR`Bl9|~G8$6W> zi&h?K({K{o(X>HR@`72qty0?#f$(s*yd-KiZDm?1`#YfS<^PAzmwC_ozUMvf^_fH7 zZ=C^o;CjrUPwX$5U&}OXM#3xbwVQ?*oj!2iAg?%Y*(}!X%kC)`>$ws-M6z!geVKnD=F&ucjXb1P;=jv7fPbC{arcMwALZ2 zY{4Gm#WRZgn)8;eII?EDD3=_hh$@$9ouhNhxZvG7d5bN0oy8V!!-FN|$+NCO#c4HV zMyGHjDfY9jpaNr|4~k41j3=F)8;q!$v^%XvxpmGSZ&O6OEAiiTM`?A7->gA(-3DWs zdfw} zYWI)pl=teCEH$fAPV7Cl?$b3M|8kur$6Tl@dF6tfS6JrdG;c7bzOQ~#DbJMltDzst zS);0IU9-xcFMMvV-jguMbIRj3C|}g(MV&h1HX@U6P?x1W9+F$3CKW*9A z;*9M2+gI7I<{p$2hUL|j1=wHdO!9bD=zWw8dQ)DVTW`&)v%l=VXh(+wc9uyMdOQlV z^D~~Metl4ml2)jOL-GTmVW(Xtr+<+Ma{3lYL1ntU13 z4Xf+d*S}l8xnWzw{)P|LrH5r@wqTccl9E+#FY&_GVb?DXqi>RPSdKuucGs0^_xHB= z63df2wX(LtE%UcJL|*9KoX-olXa#>Q-0G0#zdgS!FSx77(Wwaa;$iFqv-;o>d4$=_ zF0YGceBEwr>JrOtNqymn+qFksd69;vY#|sZW>HbOE{ayV@Qr0)v z^9)-0YLc?!PWtOX0eL=JX5+*7@fmh%bcrs_KO%6oO55$oLz z&Q7;s^OrhL$jJ(wCqOZWvn!%}o2TQ%Hurgp4Jp%!Z64ophhkQTRmmZJBwlTsqpiS& z1#XMBB5qT;J;^B*+LbufRwWP68=A1DuU5(Zq+M!7l^on>7nfYIBss-Ko!yq?)L&>B z?f%tnEAy?WN5wN$@<4rb<6DaAcT~0pj%oDtsIE5utXLYIsTgdOnsQX`n-JZ2RcTx^ ztuaTMFD2^|b&K@R=~re2x1N& zmHX+xXjI0k(noTbH;%TY=-Wp19$ZA?qBiwfhj!jSOYM0{`}B7F9f8JrRNJE&AIU?# zr#7WGJ>Fzj*L{RVT%ooi4u#oO`m?drG~vA5+yOHo*J*M~(-IVKNISlWy@ zr-b}F&h0gx(w7*vijcgJ;)TuF|AE~h&tD69BE;FbMF~L|a}K~nY*s%wCJ*g(yxHZK zt=lM^B3mw#HVB&*ft|kbO1OISnA|Hhyaii*OZiqCmUpnS>w>Gl@_b9-mawpBrhWA z{y>RQXM7?bH{5J3y49+NAIFmHQl}i3X)!FR+^)1YqE`ir z3K!qIz-&(1oSjot-Db~TSoB%jTb-TCuD0!q$`|i=%F-3vBf94K+cvfL2{}@q(5@7! zV^7FK^yAu##;Z$C;9Du9z3373vd(obDyM52$_T5#LXHUox z@}_DzcE?FsR~cI^*GZe|arL?ETNzs~SNN_STr;G`RZpWT^(0C{4R~X{8`=c zx*hD`u+!J-X0Q-j8`~RiHX54zn|d|XHoepIW0TY@x_)N07PlU172`t$C|5UcrDJ!$ol^t@t&&uYN&1*W=bgWb>JLEA^uKHsK_Q*>0jZ5WtR|gVlGg%2DxWrI^iGi?RxY?>WgjN?o42LKx3W zF~|B35xp-+$p80A*T6)IJ{HUS092zBz-&9H`LUJYY$Ok<7`%mG;Mj!an z=z|9E0&g&a5BNe4@T(ks(0|`J^F~EH-EW`~uQN;1wU?ZiZr<>(ym`a)x4pi`e{?^2 zh+BPVcR;LEqb}MV&@cK+sdV9r<@r-5O|?$R&YhaQ*gAXs??jJUsq~4g75UatV$5mv zgWUlS4zHI=b5~^wOM_IpX#R8g(dpLP6OlZ9!Xuap{_m*>ZBmu1a!6qF-G&S;QmKe; zRVQI;eB17}vT091vDw}0PQQoE*7{w!bx%NlDX53|F6d4{V5T+?mG$oj{JhK*U>2p; z#PRtlUGHX<_2eCt$gf?7~@Np`+;9l|gg?dT@u)u>IQ>X zh_26N_3?L1J%5k=B`jC8{LFl9AQ_oYEXuapCnv_P5{7Tlg6V2kb7Y@3JrP~{4p~MI z#=a;^_LZ(*N*ikP9=9ya|TV)CQ&r>0C!o;+Pd{ixm;9N4$VPg-Vl{zP%#HML)C zVBFlFyEDe8PZg%?NXNt^FBu&ZlP`jA;L4Ve_DFitto+4G=V#kQ&tJN-x@KTmX0Cln z=3?ZA{o0j#XBrki^<>VIOKl?bH}&Zse1mo2H`T{tO<`*TZlT)v{IR!Z)TdL#%+va5 z7E+3}yO-;+Cc;OOv?VDJK02v;B!04_jbs_#^M$WoOKSrNHXvog^mG*r9Q2?~_<3~~ zYJ&;&){5^g&N6S@jZPWWzVDlYy9>Z!j+ zvJO|beQ2@_H7oyJ&Dgg))EJ|ruB~T`?piNlxEHtg>ZdN96BI7>S6`VE)HiOxotc`v zJUbiFOBe@ArOOs&3gaL&ip4g>;3mJph`*yYbuGFvRtv9T63q*udBHR#V>gHm_k z7=sb~Pv97fs<#72f>!mR?*0ahyFIhF1IT!McXS7k3AaZ-5w&|KsugpCdL>NK?ws6x zXUG(7+5RU)B;8$FV{-Rw8Xm?y5h>Dtgospapj{!t5II${#;JiGpRma<3d^+a1^GWQ zVmg{IrFFG;Cq~TBdNQ+np?uTte$8d5+fK=|i9?Bd5{D66h{K6{5%(tULmWXINqi5n zLfn@)ia471UgCbl{fP$<4&fVhyDh+iUpnfMjrb;Pd{uO}`dE++mHaS8DT;*G?w5x-9S2Jt3hm3T98De;@c zeQ=|PsG=Ve zBfd#|i@0+gOT{dK4rI`S0ldH)jNk*l&;$IyA50JcW(b5J2!;>{g`N-w76^x4&>Q+d z1Vq9;pg>=Uf@ruG`aypf00UtV#K2&Pg&|;tp)d@F!w47&ad02p4-Y^*jDpedAdG>r zkN^+CI2aETU?L>KB$y0SAPJJ;VMu{gm)=&b4@FQ6e}WR&02|>ocpct=O`yVND1|rS&+ry( zfvxa1l)*M|z&o%V%3%k*3x5G8?1WwL9_)ra@IJVp0`|f__yG390jPuz;UFA>!*B$u z;3#|q$KYf51dhWA_$z!0e}j{73aa5V_#FNYU%)@W4K?s3)IuGchI(iKhDKOfG%BiDbf22!qSDvxl{pns?LiRuHKGdRo_a*jjXfJQZ zE-xP}J+nWx!RD%5oXR?f`}%famzf|nus`+6Q%-6j^;+9-nb)T*%2+m0%@v2a<_{e| zCXt067{e_Z#XS%go4DveU$ae!4=t)RXXLX2u85g0+m&isTKSB1smkR5z4E?Ugq!O!HP%bIrZ(cW=XV(FGI zFL2w=in+Z`yfCHG(r%x8=d$*drg~F-RAm%hrN2>?fm-U96Q*CbM6ON|6Ath~Zc3%_ z^ol-Ct65!8X=3GCUz^*FOM>;D-uzU%IhCJ4ai_KNBJL1V+5AnX%M1O`X>m2T37Pe4 z+%$W>s}y#%P`6$Jy`X22Q>onMnp`HHJisS&EuylF@8F45rz@;~tQ4?H_*m>)#wT!@ z;<7S6h^rSjl<}jvX0fG=pVqJCyk%VRI|WPjIok$B+RoUlGU3trywEe3ta3^SPtNBB z2pg%1s(sE>Y^7rFsytq3UnLeC+HR|%Id7% zU8P@Py`iT8D|QxfrOwn9O~rlcOFVFh59PLswTJk=T)e0{%=^+^*kOKhFW{A5E^Xl9o)oTt|Vv7|?J~mp%?K9ST z=YNt3R(kTz#Q>cFo+HgEhNrN~#Z5pRYbu^J7hO&6S#|Lo*T<>Za>8nMuiWM=eO3 zs+&GHBWqHayo0B^*Q78Z8ZE9G;p1xk8W-AGXnACkyKBs`nT)#BTW(cYf78aT37o!D zDr+p*oUz5k^88=qoGsWa6?|K;#l&T7%_z$AwHKM%glO@|*R)Rth>9b8FXaHVxZJqp zZnXwVt?h{sUq8Zk$c@3kOj%(J7V)M);aYhSJLJUKT&UyI*1J^EF&>R@utuLJle)RB z5zakN{}QRlbCWV_U!xzl*fagtIAyvd55S_f=prT+3@&hzF8vDleNMJss~*>w+pMyU z=bUVQr%Rn|3SmGJT7rwW*;-C*vtA9fzr}hy^Hl4GgqJ&v|{gazMFH;I$^6grJN6otwD?b9_Dk#%jPBY zxh{0RZj%W$xaL-%#?00^>9rcO^R~xgxJSe61c5>~qrL~z{2AAZN;56HLp|hUTI4y8mRr}ZPr?sEf znrq85Yc)b*L!PTW;nyG>72i9`$58y*eUuLy_o!Bi1#%6=1bZm>YeZ5^2rLY$6TWJ( zC{1l!1V0LZHkU2TFZt;etyFqG`Cf~3{UJG^Rl2&Gex$gjK1zjR#4)~y>yo+P2WvD0zBJNKD5;yB-t+aT(X z^PRX;;)>&ZkM?)!EuK23bLn zS;B=K4F#Kv+N8y9CuR6(OwNL_!QxqAeV~_ZF4&xRB~VLIkm@;VbrH5+vxH0#a>TwT z_$U{u8Y~#a87KH?#qf)!FQri2Dt$gyj}uKN`0-IwF6M=-u=Xy0qCC^X>Q_-wvC`H} zm~yeAoT(_|0VQux()y(^Rt)=wKPiiBER1RtfBlA5p+@X*lJCt`h^Z&}N%4_&Ym}Pe zSyIH)6zc_#IvQ2}?1DL6XDF4Ljk?UjdyRVC%)mQ&zTQ;W zBIcjsyLr|&71mMhz1N%ew3L;d;)D5;)4Y>d^*tYbpn|XBO3w1`V$~0HSIw8Y=SEjD zwyLta(xWct#;%rIEuO6dZ{DxEQ*{o1!uSiJ7v4q2Dr!CIBI|nA^{X3J*H-s)olqZB z&+I?TFCM;l?IL3js1{?!3yUv&c)?LJt1+{YZ;G)09VdnCgwKrLBdFZ_p=P`h-d!?T)QIs7&W5FFV`HkL0+xvcOyX zVJ=ZUEI~awakx4uW#}8jn6jBOF33(dM9d$S5E;FM`CsOYgGMGN#SckNHqbRCHE|U4 zxWXByPFrA5_hYiFoRM|8CRXiHggRa4#1kK>{CscxvyHe`&M3bAiON^(b(;?jzQsjt zoHlz}K6C$-Q}+|IvKKJ-=4FTai{!v4s84ZoAb+O=s&BM0zT+} zNJdXIcM4Ui$|t`OfU^un0N*KlNnvpl}b551u^qDtq$K`}=*lZa;HT zJ)~|ttz49$i(!7|d>wPIl+s-c@k}^JDQ)K5YW^5 zRb130sVVmh+z555y`gI9Z5HUJF}E7dNN<(Ty@6e1A~FYtY`E( zIn-d9I&I95G2I;(bwc7;7S!PAOv+b}(k-5-A2lySH-5;Q%@E9h$L`CvuX3S2{VTxa<)j9JG5$d?;oJc0SOl9q_h>zDPf|9N}CMRu70xe5Y zO5*6z%M+4Dv%qW5^JyTCmyDMN7z z1m65tL26QJB6GXNq;rtZe1B#3>G<0yd~g3f%RT_VJ5pBe^T9eg^|SrGo})kC-~OIw z?@InVGtwz!e*a^CThZ0_ee3oIa~u@!yG%MLBS#EN8kWLB@6lbBE_-3tTtm7+KP)LZ z(U3jQAkONp^7Obb)s&7=p9kXm-BrCOK6GSAr^WjbrK6&f=Jt<@GBDpi=}tQ+^^G*m zIKv!TYAp+RY|paqnEC11`nl!ey&@mw9#yvZkot)@oI!3Ip^=#=t&0qCbUm&s2eB77N`Wy zT{`6cV`Uyx)x-07^GxPN_uk$VSpPaT3d&L{pPzZhe)d;M_vsV^?DzJ;Go{b7;0kJ0 ziQ31n%yp>GLyiu#Ye|AnK-jaeE%T-J+WB$D%(+Y8#mLlpI?F8BUyPmL(@_)f&nPW# z=ZHM=K+e7~JDtfpQ9l$FWdgP1*_qnux4{t|Lmko4uM7A5=)XAm@~-r-KAp7-d$tC> zX${h{=Vj?=nJLJGQ(GS0r0K~qbctoMh+Juqk(|1xD9soJ5cQb!sk3!zsvVufJfdjw zb#EKgy_l>!)s#m|Gn2!7W9VJyQxhZ9(jy}&=6I;7>RcVII+OK~s>V8AL(%iuVkD|l zQZ&rH7k$O(wJ6BHB+Zli0w(KC)jRaz#8FYIpgu24&-QgZ>lY`j^|Ni9mYtQba6a?s z_hLWD`#WY{_6kh$fl0nF$**LR|59lW1`iOGHU1sBfnrRJe~|MaPTgBn+1%R6mb1WD zIq_+fDxmvds^>k#-UR3=GAAUU@yRz0DA-W z0el&-FJK&CKfwNguK*4J90)iF@KwOUfI|R>0>%R-044$s0~`*h0ZamX4R8ctGT=zS zQGh9cserEojs{Ev90T|U;8?(MfNuhh2b=&n5pWXVWWcuorvPdJ(*dUfP6NyU)B#Qh zoB^l@%mkbXI16w#;2glYfb#(71HKKI1-Jk(8*m}uBEZFfIe<$5mjb>6xD4=J!1n-i z0rLP2fbRn?2h0a700h7f09OEh2)GjPBfwRFg@CI8KL%U_xE637;CjGM06zuX04M@( z1T+Hv2kV>+z(atC0lx-30$2`s6z~|}aljLR-vFKjJO%hI;CF!E1D*yv z16Tq01K?S}9|3;?{29;+SP6Iz@H}7@;03^Hz#2dVtOcwCtOslWya?C`*aUb9uo>_d zz{`MF0IvdG1H2A+1F!|K74RnDEx=y^Zv)-|v;qDG_&ebL0RI5I3wRIkKHvkuhk%a& z{{(yt_yq7NVB1RMRwGB82v3}ejJOb2A}4Odop=yW;zhiPf+&fK_z+*>NBl_uX-5J{ z5NS_3kd7pngpf`|Ae~7l=|Z}aFcMC>kq8n=qDXfVO=5_e^dPaMC+S6ABE3l;@-pd5 z;z&QzpS(f_kbz_nd6f(%LPPZCHX8AgT^4M`%ekr5=Bj3lE-3P~lelhGuNj3IB3 zv1A;1lZ+=5$V4)UOeSxUDMU-s$y73pWDp&hPG%52$s{w$EHazSA#=$*GM~Invd99G zO%{?xWHHGhOUP344p~OtCGU}3l1B{WeX^Y7lL7+d1G0jANLG@M$SP7uR+Ep(8nTwG zBkRd0?V82Uh)O8 zkW#Xb>?dE6ugC#XMh=ogEG_lAGif q`IX!zcZiMrMt&#%BY%*)LDYAI 1024 get a ProDOS IOBUF ldx #S.MEM.F.ALIGN+S.MEM.F.NOMOVE diff --git a/SYS/KERNEL.S.JMP.txt b/SYS/KERNEL.S.JMP.txt index c8547a8b..f196044d 100644 --- a/SYS/KERNEL.S.JMP.txt +++ b/SYS/KERNEL.S.JMP.txt @@ -13,7 +13,7 @@ K.SYSCALL.JMP .DA K.GetMemStat $00 .DA K.MKDir .DA K.MKNod .DA K.MKFIFO - .DA 0 + .DA K.Pipe .DA K.OpenDir $10 .DA K.ReadDir diff --git a/SYS/KERNEL.S.STAT.txt b/SYS/KERNEL.S.STAT.txt index 905eebbd..9467b3dc 100644 --- a/SYS/KERNEL.S.STAT.txt +++ b/SYS/KERNEL.S.STAT.txt @@ -209,38 +209,36 @@ K.MkNod >STYA ZPPtr1 pathname >PULLW K.S.STAT+S.STAT.MODE >PULLB K.S.STAT+S.STAT.DEV + + ldx #0 - jsr K.GetMemPtr - bcs K.MKNOD.RTS +.1 lda Nod.Table.hFD,x + beq .2 - >STYA pFD + inx + cpx #K.Nod.MAX + bne .1 + + lda #E.OOH +* sec + rts + +.2 stx .3+1 Store hFILE >LDYA ZPPtr1 - ldx K.S.STAT+S.STAT.DEV - jsr STAT.NewhNodeYAX - bcs K.MKNOD.RTS + >SYSCALL StrDup + bcs .9 + txa - lda (pFD) #S.FD.T +.3 ldx #$ff SELF MODIFIED + sta Nod.Table.hPath,x + lda K.S.STAT+S.STAT.DEV + sta Nod.Table.hFD,x - tax - jmp (.8,x) + txa hNODE -.8 .DA STDIO.IOERR REG - .DA STDIO.IOERR DIR - .DA STAT.MKNOD.CDEV - .DA STAT.MKNOD.BDEV - .DA STDIO.IOERR LNK - .DA STAT.MKNOD.DSOCK - .DA STAT.MKNOD.SSOCK - .DA STAT.MKNOD.PIPE -*-------------------------------------- -STAT.MKNOD.CDEV -STAT.MKNOD.BDEV -STAT.MKNOD.DSOCK -STAT.MKNOD.SSOCK -STAT.MKNOD.PIPE clc -K.MKNOD.RTS rts +.9 rts */-------------------------------------- * # MKFIFO * return a hFILE to a new FIFO @@ -255,7 +253,19 @@ K.MKNOD.RTS rts * CC = OK, CS = ERROR * A = hFILE *\-------------------------------------- -K.MKFIFO >LDYAI K.PIPE.SIZE +K.MKFIFO sec + rts +*/-------------------------------------- +* # pipe +* ## C +* `hFD pipe();` +* ## ASM +* `>SYSCALL pipe` +* ## RETURN VALUE +* CC = OK, CS = ERROR +* A = hFD +*\-------------------------------------- +K.Pipe >LDYAI K.PIPE.SIZE jsr K.GetMem bcs .99 @@ -288,41 +298,6 @@ K.MKFIFO >LDYAI K.PIPE.SIZE .99 rts *-------------------------------------- -STAT.NewhNodeYAX - pha - stx .4+1 Store hFD - - ldx #0 - -.1 lda Nod.Table.hFD,x - beq .2 - - inx - cpx #K.Nod.MAX - bne .1 - - pla - lda #E.OOH -* sec - rts - -.2 stx .3+1 Store hFILE - - pla - >SYSCALL StrDup - bcs .9 - txa - -.3 ldx #$ff SELF MODIFIED - sta Nod.Table.hPath,x -.4 lda #$ff SELF MODIFIED - sta Nod.Table.hFD,x - - txa hNODE - - clc -.9 rts -*-------------------------------------- MAN SAVE USR/SRC/SYS/KERNEL.S.STAT LOAD USR/SRC/SYS/KERNEL.S