From bb0fffc1931e13ae0a4c0674730b4d9203301e77 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9my=20GIBERT?= Date: Tue, 4 Dec 2018 14:20:35 +0100 Subject: [PATCH] Kernel 0.92 --- .Docs/.TEMPLATE.S.txt | 2 +- .Docs/KERNEL.md | 13 ++++ .Floppies/A2OSX.B800.po | Bin 819200 -> 819200 bytes .Floppies/A2OSX.BOOT.po | Bin 143360 -> 143360 bytes .Floppies/A2OSX.BUILD.po | Bin 33553920 -> 33553920 bytes BIN/KILL.S.txt | 124 +++++++++++++++++++++++++++++++++++++++ INC/A2osX.I.txt | 2 +- README.md | 1 + SBIN/LOGIN.S.txt | 98 ++++++++++++++++++------------- SYS/KERNEL.S.JMP.txt | 2 +- SYS/KERNEL.S.PS.txt | 49 +++++++++++++++- 11 files changed, 246 insertions(+), 45 deletions(-) diff --git a/.Docs/.TEMPLATE.S.txt b/.Docs/.TEMPLATE.S.txt index 7de7af4b..4d32cdc7 100644 --- a/.Docs/.TEMPLATE.S.txt +++ b/.Docs/.TEMPLATE.S.txt @@ -13,7 +13,7 @@ AUTO 4,1 Enable MASM3 auto line num *-------------------------------------- .DUMMY .OR ZPBIN -ZP.START +ZS.START * MyPtr .BS 2 ZS.END .ED diff --git a/.Docs/KERNEL.md b/.Docs/KERNEL.md index 37791a1c..4a5818f7 100644 --- a/.Docs/KERNEL.md +++ b/.Docs/KERNEL.md @@ -584,6 +584,19 @@ A = Child PSID ## RETURN VALUE A = Child PSID +# ExecL + +## C +`int kill(short int pid, short int sig);` + +## ASM +`>PUSHB sig` +`lda pid` +`>SYSCALL kill` + +## RETURN VALUE +A = Child PSID + # GetPSStatus **In:** A = PID diff --git a/.Floppies/A2OSX.B800.po b/.Floppies/A2OSX.B800.po index 92c8f697bc3f39ae583c1a8c0c9258f3bc31c751..601dfd2b8b011046126e3e61c5abd8eed28e43c6 100644 GIT binary patch delta 3966 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 delta 3625 zcmZu!3s6+o89wLk-3u(Ryb%HA@KB5;7HynT(@8`?*|iPe3 zzyI~!|NQr;(=F2J7Fp9-$*ws+)@QIeQLxIhQ9nX-qk>KQ(c}i90)sB8)~HaxFD4&h zgcu5^c0NIWc-qeY1niWGWdUX=X2)~vZm?-<10B(L%M|57c4j0&hzpEYKw%~7q99l{ zo=B@;GOYrKR@%YgF#W=)2K~~gD90C3Z>aorYcpeFl#?zItyEv34JkbzC9f=7P_CK| z!)<^P#&NLSVQrdxq6D8KdAQI9_Z`Wmb^>cq_LX)nYr+A~Ni{5)^Z+7VtyNEM7Z?pdMBg&dK_imi#v6Z-OjQ7pXu3Rv(i(q6IbvN_uVyu*WBI^1Ln?TeaE5*A z5WU^b+^!G2IpoY>qa1YS%%KK{Sl=${l0oZ>^_ma2i*!r(;U3uVh97Acf4-K?65dyi zx#$K58=zX+++GQ}di7JAcm&CLWRjCl2CPvHZEnN3SE9V>GK_0WX_577J-%g~f4S`T zX}$iX-@jaSZv`6lx7tz{XM5^%JSWzAEbBZz(i*Bf`yxH{QJ&T?504D!v+;3nWM|hB zFLxNphjiY(-k0`;>0jX&;Meur`64z!AUpN#{6c(4Kgeg->=*g*P8-w2Iv;j6u_;>9 zeJyAc@y z6Sb5p?98zM7vBt8WiP~#b1v&y>kpl%Gv&U%M0 z0Ov8sZ0w%P?V^)wao*ecnJ_eDXA8ElwQQqjP^!B;Kl|0CIhixWZsCI96fOxpf~0a) zv7}m2jLryO3VejEhg1zfFg`4gm*?@(c|6YJnLJ)%>uDVnT1Ny!_ybv~X?%Olpin<3 zfG{G|j|f}4ox|T+Mg(|qM@7q^Q2HADe9BfR;3(8?!nBT=G+W3uj{Hynl0XVG5!zI@ zfSsLGpFvqg7g;A4ft>eXcaI2vbOQxiO6YE`Hq5^hM{#Tu=X}`W4JZ3Wa!B87$Pc%P zK;(!`)EDkb(O)wdX3`1p!N6*l=Gqq5IoGi3L-%@5z2}K1#$otqgIpiWf;wsJLVBxmI?D?G}e(sxGQjR8Azw)uMQ0AwhBEJ7E57#P$d2 zFHyhE8F@I^adSl;4ypVgN>-Gs0t!c58;rV-d>;kh*MTzDeE2zrNy>^9fdiX63WkS* zXJqpYFbuBcAj(yjD1ou!DXxzJ*N$MWebG)CHF74Tf_X>G0 zknl;iD^%Lk9XooessdZtvTLY6u%Zyv@XGqKfk6iWUASh;u>K*MnFofNbKF6VE3WR)7PwfO71+*!Tq~P8oD7 zLtGz{qB~&}mOpu7sk=E!RdLDGK!f52Ah{Q4a(;INgi~YHSeA8)dmlf-%wIo;`SBDR ze~($o7k~c;C{M6)H|C^g&z=9W6V%7pxDU&iuCM&K7R<`N{^!4(7yo_fKi~Ag-Y7O6 z!HLX&FZ-XjgP&fv2Ndvg8i%vucUSsB8^gv9%o)GN40CnR4|QUu#*CtHqEc0{Jb(pm z2q+kvrhw)Qr6rUVFAhKmy6Ts-tAeVFuMBAy2CmCnp5ZF1Du^n?u~>>;p_lI# zdx`}v0!vVzFPlYy&6iTBURG7HN;SzB7YR}S7#j7|(~FqlnBnjJUC@g;X2k24uV9wD zefNL&M(>0E2pflR6!YMb|Jf*Jna5B3@)*cZQ8P|r#t*_@Bg2HV5-As^hdwh#G7(I; z48*6#Bt~LPWtf_4kot^5HGI1&rv9_RMMHA?pLyTeg{mM6B3h>XQa$bO-qL&?ie$f zSogH{8d;qt(x{1=|9@3UdyW7A diff --git a/.Floppies/A2OSX.BOOT.po b/.Floppies/A2OSX.BOOT.po index a1bbaa3c61c9553b1655706cea84e0b5248058ae..a99dbe628b0a78a6aaa76de2713f60f4d1440f41 100644 GIT binary patch delta 3648 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 SRxui;eWil>m&_DSk^ciHnYc^< delta 3309 zcmZuz4^&gv8Nc`C6xy2*4oV;*PTsI za*ncjJjQ}KZ7e6~YlhUQvH8PMw6k@yT41w#ohz#(c`q%3h>Ee!|9`UYCIk{Nhr_+! z_kQ2M-~HZqpD~~?1{BV0RpjWuWn<=v-!tp|OlAe?Np*5NP#tz7Jt6~M=PD}fIpuZx`h0av_`l4Ctn0jF*_B{n z2MONm$Q6{1bzV)#w9acx?;yhX!gc0P_h}6Wd^?yrnbjp(_xY@DiAPqCWFo)u3U&$w9ovHWz?+RAu~dCn$o7{jJikYRDAv58B6Gs^CBYqT_%sC?l6I zA9G3jk%~ul75S*wnY8DC&lU>Gv^TuAkiL`_X{zyum$i}Qk}oWEN0y$*a@n^5Xf)sa zAah=x-<0n^TH|-D^@mB@Q{~@1&TmTcTNC^|vZ0fqP;gv($HE}jgjD^;;I7~cyA#Zd z8)xH}&2Kgqv1uaNYHn?uiyO^-jd_N5B|g;dVj5WCL3;z6p|{`D(_i+{e5!drRVcrT#~PTPU;jdh=O=g>=I>_uN2ExYKqZm@e7epbaj!c zUI@k~6!NMqv%vCyRT(%}rzN3RhN_mQ12vb&~UtKZCR>Vg{sz! znd|OT*>fWK4UEojVATBCf@Z+vtS+k5R1PJ`8Bi*6khnOiE#dj&zMlO8^=ru?INq_P zg5Xh=*P}_Aa$QW}i2DF0+h4+?KYRz!3M@^}Fr28ZSP?sxxdUL>7(Ws%*T67-me!+! z>Jlw5Ry@qL4Y>BiaXnvE4-}m{o{JUPhShi?S_1QaI+;Okl3Qf8`j_h8s<*1&QJd5V zK?@>2t)ZJwZ|Jt8^S-^lqZ!08nb=knblSPpj>v67Qcl~ZgIF&=9K3CuMHn@yQrBM{ zf@cy()(||^{(LN)1-O3h5PZNs-j+*!4%(HGO)qI9&VXGJ4my=Ma)^xwfZpO;j57^c zAk!y~so~{lHgQZLwo}vt(l5|w==oHdF^?ek2@T!)!~6tS_ncBY%2?lB7dYtMi0Zx# zkort_pd%$XH*;^`(5{96pX%xs@UC!tePFzxq((woCfEm*!Z<1g<#r>8IeIE6^|hO8 zH@)%J>l-&MM0ER`*WP~nowqixTWC4*B3=pa$)e*+@XutEsAHO~O~y}jeMfgYJ5%nS zs4Buvw(MKfGwKH3l84R~jHg{fuU6P*z>TaZ$Xi+!?a=V)axL&Wqz_-z^fsMusVK!+ zhM}uFtWh zB*wrh!EZAvC@$A&%9mF}BXgfa)Fbq3B`#`yNwFq2JMIfK4*e)C4rbA7aJu2&V84A# z)-yDfMHS`CH7kbVa9=~#SL0cMY$j-+0^Y?@K7HtyRCaotFczE7ap z%!$6Sw76+nU2)0qKm!saNN#3)awi^Zurl`qw+TPQ%<(puA5U@1X3WY?e)3lkp5T_> zV@`hhvonADJBW{PixDfCv*#kX-I!ILZ|~^*$3HK8`7Z%7zFxPShGmIFBKtIQfp&6=9*Xk;k$FRVC2NXOWp@7hnX+~*f z#q(lNi0c8^Z5($X0Lv>YDT{;k0s|Yz9Ph-kmx?u2h7lxp1>7wd6E(lAqN-#Bg}AHW zZfZQC5H+_fhID{)*HHpeDMu$)03%RWJ<|1yxZBUnt^hteS5|9=dxN_Ru;Tcr7X4?? zd=H?jem$nEQY%Nb%VQ{R{TQxttKz6a+*9bP#oXwur$=V@FbkXv%TOSk&A6E6Gh=3E z%X!Q(m-`|I{3Y!B2O|3}%yQRm4Biah0{J0s@!=%q`~O9r4PchJb1$+FLjT-<_y`2( zpSxHgdlEtxoXCXUPh_4pGYW=b&CsyN6PauoTzK;>IZ4cvi5z_MpBpJJT!8$<%Sp_~ JvKAGS`+t7}J#GL1 diff --git a/.Floppies/A2OSX.BUILD.po b/.Floppies/A2OSX.BUILD.po index a531f7cc1f00a18ed8cc270d16416843e4a987b5..54c5017b9b77d58fe56429e4bf09f6763e624d81 100644 GIT binary patch delta 8308 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 OTmrut_S0pqd8w~q0Fe0X07B{jH)Jm;P8hu#l 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 diff --git a/BIN/KILL.S.txt b/BIN/KILL.S.txt index e69de29b..1754abf3 100644 --- a/BIN/KILL.S.txt +++ b/BIN/KILL.S.txt @@ -0,0 +1,124 @@ +NEW +PREFIX +AUTO 4,1 + .LIST OFF + .OP 65C02 + .OR $2000 + .TF BIN/KILL +*-------------------------------------- + .INB INC/MACROS.I + .INB INC/A2OSX.I +*-------------------------------------- +* Zero Page Segment, up to 32 bytes +*-------------------------------------- + .DUMMY + .OR ZPBIN +ZS.START +ZPTmpPtr .BS 2 +ZS.END + .ED +*-------------------------------------- +* File Header (16 Bytes) +*-------------------------------------- +CS.START cld + jmp (.1,x) + .DA #$61 6502,Level 1 (65c02) + .DA #1 BIN Layout Version 1 + .DA #0 S.PS.F + .DA #0 + .DA CS.END-CS.START Code Length To Relocate + .DA DS.END-DS.START Data Segment to Allocate + .DA #16 Stack Size + .DA #ZS.END-ZS.START Zero Page Size + .DA 0 +*-------------------------------------- +.1 .DA CS.INIT + .DA CS.RUN + .DA CS.DOEVENT + .DA CS.QUIT +L.MSG.USAGE .DA MSG.USAGE +L.SSCANF.PID .DA SSCANF.PID + .DA 0 +*-------------------------------------- +CS.INIT clc + rts +*-------------------------------------- +CS.RUN ldy #S.PS.ARGC + lda (pPS),y + beq .9 + + lda #1 + >STA.G Signal + +.1 >INC.G ArgIndex + >SYSCALL ArgV + bcs .9 + >STYA ZPTmpPtr + + lda (ZPTmpPtr) + cmp #'-' + bne .2 + + ldy #1 + lda (ZPTmpPtr),y + beq .9 + + cmp #'0' + bcc .9 + cmp #'9'+1 + bcs .9 + + and #$0F + >STA.G Signal + bra .1 + +.9 >PUSHBI 0 + >LDYA L.MSG.USAGE + + >SYSCALL printf + + lda #E.SYN + sec + rts + +.2 >PUSHEA.G PID + + >PUSHBI 2 1 Ptr + + >PUSHW L.SSCANF.PID + >LDYA ZPTmpPtr + >SYSCALL sscanf + bcs .9 + + >PUSHB.G Signal + >LDA.G PID + >SYSCALL kill + bcs .99 + lda #0 + sec +.99 rts +*-------------------------------------- +CS.DOEVENT sec do not discard TIMER event + rts +*-------------------------------------- +CS.QUIT clc + rts +*-------------------------------------- +CS.END +MSG.USAGE .AS "Usage : KILL PID\r\n" + .AS " -0 : No Signal\r\n" + .AZ " -1 : SIGQUIT\r\n" +SSCANF.PID .AZ "%d" +*-------------------------------------- + .DUMMY + .OR 0 +DS.START +ArgIndex .BS 1 +Signal .BS 1 +PID .BS 1 +DS.END + .ED +*-------------------------------------- +MAN +SAVE USR/SRC/BIN/KILL.S +ASM diff --git a/INC/A2osX.I.txt b/INC/A2osX.I.txt index 4530de46..982ed422 100644 --- a/INC/A2osX.I.txt +++ b/INC/A2osX.I.txt @@ -224,7 +224,7 @@ SYS.InsDrv .EQ $9E SYS.ExecL .EQ $A0 SYS.ExecV .EQ $A2 * .EQ $A4 -* .EQ $A6 +SYS.Kill .EQ $A6 * .EQ $A8 SYS.GetMemStat .EQ $AA diff --git a/README.md b/README.md index d5efee8f..9c8f603b 100644 --- a/README.md +++ b/README.md @@ -372,6 +372,7 @@ note : '$VAR' does NOT expand Variable | | | -N : Number all output lines | | | | | -S : Suppress repeated empty output lines | | | EDIT | Working | still missing : find/replace | 0.92 | +| KILL | Working | KILL PID | 0.92 | | FORMAT | In Progress | -L : Low-Level Format | 0.92 | | | | -1..9 : Catalog Size (block count) | | | CHTYP | Working | -C : Continue On Error | 0.92 | diff --git a/SBIN/LOGIN.S.txt b/SBIN/LOGIN.S.txt index 38798ad2..5fa807e9 100644 --- a/SBIN/LOGIN.S.txt +++ b/SBIN/LOGIN.S.txt @@ -35,6 +35,8 @@ CS.START cld .DA CS.QUIT L.MSG.LOGIN .DA MSG.LOGIN L.MSG.PASSWORD .DA MSG.PASSWORD +L.MSG.ECHOCRLF .DA MSG.ECHOCRLF +L.MSG.ECHODEL .DA MSG.ECHODEL L.ENV.SHELL .DA ENV.SHELL L.SHELL .DA SHELL L.ENV.HOME .DA ENV.HOME @@ -44,12 +46,11 @@ L.HOME .DA HOME CS.INIT clc rts *-------------------------------------- -CS.RUN lda #0 - ldy #hUSERNAME - sta (pData),y - ldy #hPASSWORD - sta (pData),y - +CS.RUN >STZ.G hUSERNAME + >STA.G hPASSWORD + + >STA.G INPUT.PrevCR + >PUSHBI 0 >LDYA L.MSG.LOGIN >SYSCALL printf @@ -88,14 +89,14 @@ CS.RUN lda #0 jsr INPUT.LINEIN bcc .2 - lda #C.CR - >SYSCALL PutChar - bcs .9 - lda #C.LF - >SYSCALL PutChar + >PUSHBI 0 + >LDYA L.MSG.ECHOCRLF + >SYSCALL printf bcs .9 + jsr CS.RUN.SETENV bcs .9 + >PUSHBI S.PS.F.HOLD >LDYA L.SHELL >SYSCALL ExecL @@ -124,18 +125,15 @@ CS.QUIT clc *-------------------------------------- * PRIVATE *-------------------------------------- -INPUT.RESET ldy #INPUT.PassChar - sta (pData),y - lda #0 - ldy #INPUT.BufPtr - sta (pData),y - ldy #INPUT.Status - sta (pData),y +INPUT.RESET >STA.G INPUT.PassChar + + >STZ.G INPUT.BufPtr + >STA.G INPUT.Status rts *-------------------------------------- INPUT.CHARIN tax save char... - ldy #INPUT.Status - lda (pData),y + + >LDA.G INPUT.Status bmi .9 lda #INPUT.BufPtr @@ -149,6 +147,9 @@ INPUT.CHARIN tax save char... cpx #$20 Control Char? bcc .2 + cpx #C.DEL + beq INPUT.CHARIN.DEL + lda (ZPPTR1) cmp #INPUT.BufPtr.SIZE Buffer full? @@ -161,39 +162,51 @@ INPUT.CHARIN tax save char... txa sta (ZPPTR1),y - ldy #INPUT.PassChar - lda (pData),y + >LDA.G INPUT.PassChar bne .1 + txa + .1 >SYSCALL PutChar + bcs .9 + + >STZ.G INPUT.PrevCR rts -.2 cpx #13 CR +.2 cpx #C.CR bne .3 - ldy #INPUT.Status - lda (pData),y - bne .9 - - inc - sta (pData),y - rts - -.3 cpx #10 LF - bne .4 - ldy #INPUT.Status - lda (pData),y - beq .31 + txa + >STA.G INPUT.PrevCR + lda #$80 - sta (pData),y + >STA.G INPUT.Status rts - -.31 - -.4 + +.3 cpx #C.LF + bne .4 + + >LDA.G INPUT.PrevCR + beq .1 + +.4 >STZ.G INPUT.PrevCR .9 rts *-------------------------------------- +INPUT.CHARIN.DEL + lda (ZPPTR1) + beq .8 + + dec + sta (ZPPTR1) + + >PUSHBI 0 + >LDYA L.MSG.ECHODEL + >SYSCALL printf + +.8 clc + rts +*-------------------------------------- INPUT.LINEIN ldy #INPUT.Status lda (pData),y asl CS if a line is in the buffer @@ -202,6 +215,8 @@ INPUT.LINEIN ldy #INPUT.Status CS.END MSG.LOGIN .AZ "\r\nlogin:" MSG.PASSWORD .AZ "\r\npassword:" +MSG.ECHOCRLF .AZ "\r\n" +MSG.ECHODEL .DA #C.BS,#C.SPACE,#C.BS,#0 ENV.SHELL .AZ "SHELL" ENV.HOME .AZ "HOME" SHELL .AZ "${ROOT}BIN/SHELL" @@ -214,6 +229,7 @@ DS.START INPUT.BufPtr .BS INPUT.BufPtr.SIZE+1 INPUT.Status .BS 1 INPUT.PassChar .BS 1 +INPUT.PrevCR .BS 1 hUSERNAME .BS 1 hPASSWORD .BS 1 DS.END diff --git a/SYS/KERNEL.S.JMP.txt b/SYS/KERNEL.S.JMP.txt index 301cc919..57e0bb9e 100644 --- a/SYS/KERNEL.S.JMP.txt +++ b/SYS/KERNEL.S.JMP.txt @@ -101,7 +101,7 @@ K.SYSCALL.JMP .DA 0 $00 .DA K.ExecL $A0 .DA K.ExecV .DA 0 - .DA 0 + .DA K.Kill .DA 0 .DA K.GetMemStat .DA K.GetPSStatus diff --git a/SYS/KERNEL.S.PS.txt b/SYS/KERNEL.S.PS.txt index a56c7350..7fcd3ba6 100644 --- a/SYS/KERNEL.S.PS.txt +++ b/SYS/KERNEL.S.PS.txt @@ -85,7 +85,7 @@ PS.Exec jsr PS.CreateChild A=PID,Child S.PS at ZPPtr3,PS.Load.hMem * out : * A = PSID * we cannot use ZPPtrs1 & 2 -* because of calling K.NewStr & PS.Dup +* because of calling K.NewStr & PS.DupEnv *-------------------------------------- PS.CreateChild ldx CORE.PSCount beq .3 @@ -533,6 +533,53 @@ PS.SetMemOwner lda CORE.LastPSID sta (ZPMEMMGR),y rts */-------------------------------------- +* # ExecL +* ## C +* `int kill(short int pid, short int sig);` +* ## ASM +* `>PUSHB sig` +* `lda pid` +* `>SYSCALL kill` +* ## RETURN VALUE +* A = Child PSID +*\-------------------------------------- +K.Kill cmp #0 + beq .99 CS + + jsr CORE.GetPSByID + bcs .99 + >STYA ZPPtr1 + + >PULLA + cmp #2 + bcs .9 + asl + tax + jmp (.1,x) + +.1 .DA K.Kill.0 + .DA K.Kill.1 + +.9 lda #E.SYN +* sec + rts + +.99 >RET 1 +*-------------------------------------- +K.Kill.0 clc + rts + +*-------------------------------------- +K.Kill.1 lda (ZPPtr1) + + and #$33 + ora #S.PS.F.QUIT + sta (ZPPtr1) + + clc + rts + +*/-------------------------------------- * # GetPSStatus * **In:** * A = PID