From c061f4883825ac7097dc3c006370f720b26b1312 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9my=20GIBERT?= Date: Wed, 8 May 2019 21:41:46 +0200 Subject: [PATCH] Kernel 0.93 --- .Floppies/A2OSX.BUILD.po | Bin 33553920 -> 33553920 bytes BIN/PS.S.txt | 53 ++++++++++++++++++++++----------------- INC/KERNEL.I.txt | 3 +-- LIB/LIBTCPIP.S.SKT.txt | 2 +- LIB/LIBTCPIP.S.TCP.txt | 35 +++++++++++++++----------- LIB/LIBTCPIP.S.txt | 4 +-- SYS/KERNEL.S.CORE.txt | 7 +++--- SYS/KERNEL.S.INIT.txt | 1 - SYS/KERNEL.S.IO.txt | 18 +++++++++++-- SYS/KERNEL.S.PS.txt | 14 ++++++++--- 10 files changed, 83 insertions(+), 54 deletions(-) diff --git a/.Floppies/A2OSX.BUILD.po b/.Floppies/A2OSX.BUILD.po index a7bf753b41ae0feb34245157158b77394e141265..cb7ad1eb72da629a672cc5911e367c4bcb7b9532 100644 GIT binary patch delta 449305 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 ^R;V!WVW$+0KwPV@!UO z-T%$p>#p+oF?Guq*t8C-=_dgl7LM_UT|6VP>iFbCw!>lk@(G&$kvTE^t}uT2WVc1} zA<9k(lVPSVa<@G{re)@-Be$MjJjM@5%Pa}svCZ#wQm=bWzh1diTdwR2zwxIsecBlR zvYtNOf4ep+U1lkkk4cI(y%?m=2r0_W%zxc>MaaVJv)t*26+?QZ+j+RAt#ws6uF-wZ ztHWd$JylOyGsac@va-g#qU5#xV|?LXzt%G2AF7%nw`Tv5n(Fbo_8$t@{=|pfv9HuL z4IK#gPw`ayM+%FQsrFweEJ&u>KN{|`p2DXDzL;O2$@YGx|H1H+uEJFNL-_^CRQskc z+0^JJ{*(E8k==5b9wN)6dNTh(ga^m<TRpob zKf^41v#(Pxqy1qLS+YPiW1HC-pJNYGyP5QPEBlN^*|`clt>|?&E&A+U~7Z;aZ-TKnwCE9A` zK=Mh!&aNAy^rfL7Nne(fAR9^!>GZ{^y<;2qj&0gMcH*W>G>Uj}|8R?5HI^>x?^`Lh z?}et$itpPe9{fDEa7N{W`lq=?7O8T;4Lo0-YqV+ekv_HKZ|Cy5LcOED0R18_Bme*a delta 385760 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 zKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~ z0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY** z5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0 z009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{ z1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009IL zKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~ z0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY** z5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0 z009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{ z1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009IL zKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~ z0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY** z5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0 z009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{ z1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009IL zKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~ z0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY** z5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0 z009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{ z1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009IL zKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~ z0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY** z5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0 z009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{ z1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009IL zKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~ z0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY** z5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0 z009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{ z1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009IL zKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~ l0R#|0009ILKmY**5I_I{1Q0*~0R#~E|1I!%vh2aw{{alCggO8K diff --git a/BIN/PS.S.txt b/BIN/PS.S.txt index 345394e2..acec734e 100644 --- a/BIN/PS.S.txt +++ b/BIN/PS.S.txt @@ -13,7 +13,9 @@ NEW .OR ZPBIN ZS.START ZPPSPtr .BS 2 +ZPSessionPtr .BS 2 ZPArgV .BS 2 +Index .BS 1 ZS.END .ED *-------------------------------------- @@ -79,20 +81,18 @@ CS.RUN lda #1 >LDYA L.MSG0 >SYSCALL printf - >LDA.G PS.Index - -.1 tax - beq .2 PS0 - - lda PS.Table.PID,x + ldx Index + +.1 lda PS.Table.hPS,x beq .7 -.2 jsr CS.RUN.DUMP + jsr CS.RUN.DUMP >SLEEP -.7 >INC.G PS.Index - cmp #K.PS.MAX +.7 inc Index + ldx Index + cpx #K.PS.MAX bne .1 .8 lda #0 tell Kernel that all done ok, but @@ -103,33 +103,41 @@ CS.RUN lda #1 sec rts *-------------------------------------- -CS.RUN.DUMP phx - - lda PS.Table.hPS,x - >SYSCALL GetMemPtr +CS.RUN.DUMP >SYSCALL GetMemPtr >STYA ZPPSPtr - ldy #S.PS.PPID - lda (ZPPSPtr),y - >PUSHA Parent PID - ldy #S.PS.hSID lda (ZPPSPtr),y + tax + lda S.Table.hSession-1,x + >SYSCALL GetMemPtr + >STYA ZPSessionPtr + + ldy #S.SESSION.UID + lda (ZPSessionPtr),y >PUSHA jsr CS.RUN.DecodeFlags >PUSHEA.G PS.FLAGS - plx + ldx Index lda PS.Table.Stats,x >PUSHA CPU% - ldy #S.PS.PID + ldy #S.PS.PPID lda (ZPPSPtr),y >PUSHA - >PUSHBI 6 + + iny S.PS.PID + lda (ZPPSPtr),y + >PUSHA + + lda PS.Table.hPS,x + >PUSHA + + >PUSHBI 7 >LDYA L.MSG1 >SYSCALL printf bcs .9 @@ -200,8 +208,8 @@ CS.QUIT clc rts *-------------------------------------- CS.END -MSG0 .AZ "\e[7lID CPU\% Flags UID PID Command Line\r\n" -MSG1 .AZ "%03d %3d\% %s %03d %03d" +MSG0 .AZ "\e[7lhPS ID PID CPU\% Flags UID Command Line\r\n" +MSG1 .AZ "%3d %3d %3d %3d\% %s %3d" MSG2 .AZ " %s" MSG3 .AZ "\r\n" MSG.FLAGS .AS "IRQDHSEN" @@ -209,7 +217,6 @@ MSG.FLAGS .AS "IRQDHSEN" .DUMMY .OR 0 DS.START -PS.Index .BS 1 PS.FLAGS .BS 9 DS.END .ED diff --git a/INC/KERNEL.I.txt b/INC/KERNEL.I.txt index 178ce686..b42ad490 100644 --- a/INC/KERNEL.I.txt +++ b/INC/KERNEL.I.txt @@ -1,6 +1,5 @@ NEW -PREFIX -AUTO 4,1 + AUTO 3,1 .LIST OFF *-------------------------------------- Mem.Table .EQ $0800 diff --git a/LIB/LIBTCPIP.S.SKT.txt b/LIB/LIBTCPIP.S.SKT.txt index 66a646d0..73a7cf8a 100644 --- a/LIB/LIBTCPIP.S.SKT.txt +++ b/LIB/LIBTCPIP.S.SKT.txt @@ -510,7 +510,7 @@ SKT.GetDataFromSktIn ora #S.TCP.OPTIONS.ACK sta (ZPPtrSKT),y -* jsr TCP.OUT.I SKT.GetTCB already called, Try to ACK read DATA + jsr TCP.OUT.I SKT.GetTCB already called, Try to ACK read DATA >LDYA ZPTmpPtr3 clc diff --git a/LIB/LIBTCPIP.S.TCP.txt b/LIB/LIBTCPIP.S.TCP.txt index 52fb269c..8247105a 100644 --- a/LIB/LIBTCPIP.S.TCP.txt +++ b/LIB/LIBTCPIP.S.TCP.txt @@ -214,7 +214,7 @@ TCP.IN.JMP.ESTBLSH jsr SKT.AddDataToSktIn yes, queue data if there is room for.... bcs .2 - + jsr SKT.StoreTCB success, update socket .2 ldy #S.TCP.OPTIONS @@ -402,7 +402,8 @@ TCP.IN.SetDataInPtrAndLen .2 sta ZPDataInPtr stx ZPDataInPtr+1 - rts + +TCP.IN.RTS rts *-------------------------------------- TCP.OUT jsr SKT.GetTCB @@ -431,16 +432,18 @@ TCP.OUT.I lda SKT.Cache+S.SOCKET.TCP.OUTTOSEND+1 >LDYAI K.TCP.MSS yes send only MSS .2 jsr TCP.NewFrame - bcs TCP.OUT.9 + bcs TCP.IN.RTS jsr SKT.GetDataFromSktOut ldy #S.SOCKET.TCP.O lda (ZPPtrSKT),y ora #S.TCP.OPTIONS.ACK+S.TCP.OPTIONS.PSH - jsr TCP.OUT.SendOptA.1 + sta (ZPPtrSKT),y - bcs TCP.OUT.9 + jsr TCP.OUT.Send + + bcs TCP.IN.RTS lda SKT.Cache+S.SOCKET.TCP.OUTNEXTSEQ+3 clc @@ -456,21 +459,23 @@ TCP.OUT.I lda SKT.Cache+S.SOCKET.TCP.OUTTOSEND+1 inc SKT.Cache+S.SOCKET.TCP.OUTNEXTSEQ .80 jmp SKT.StoreTCB exits with CC -TCP.OUT.9 rts *-------------------------------------- TCP.OUT.SendOptA - sta .1+1 + ldy #S.SOCKET.TCP.O + ora (ZPPtrSKT),y + sta (ZPPtrSKT),y + >LDYAI 0 jsr TCP.NewFrame - bcs TCP.OUT.9 + bcs TCP.IN.RTS -.1 lda #$ff - -TCP.OUT.SendOptA.1 +TCP.OUT.Send ldy #S.SOCKET.TCP.O + lda (ZPPtrSKT),y ldy #S.TCP.OPTIONS sta (ZPFrameOutPtr),y + bit #S.TCP.OPTIONS.ACK - beq .10 + beq .2 ldx #3 ldy #S.TCP.ACKNUM+3 @@ -481,14 +486,14 @@ TCP.OUT.SendOptA.1 dex bpl .1 -.10 ldx #3 +.2 ldx #3 ldy #S.TCP.SEQNUM+3 -.2 lda SKT.Cache+S.SOCKET.TCP.OUTNEXTSEQ,x +.3 lda SKT.Cache+S.SOCKET.TCP.OUTNEXTSEQ,x sta (ZPFrameOutPtr),y dey dex - bpl .2 + bpl .3 ldy #S.TCP.WINDOW lda SKT.Cache+S.SOCKET.TCP.INFREE+1 diff --git a/LIB/LIBTCPIP.S.txt b/LIB/LIBTCPIP.S.txt index a364e99f..47d106ca 100644 --- a/LIB/LIBTCPIP.S.txt +++ b/LIB/LIBTCPIP.S.txt @@ -368,7 +368,7 @@ FD.DSOCK .DA #S.FD.T.DSOCK .DA #0 S.FD.HANDLER .BS 1 S.FD.DSOCK.IOHANDLER .DA #0 S.FD.DSOCK.OPEN - .DA #0 S.FD.DSOCK.CLOSE + .DA #LIBTCPIP.shutdown .DA #LIBTCPIP.Recv .DA #LIBTCPIP.Send .DA #0 S.FD.DSOCK.STATUS @@ -382,7 +382,7 @@ FD.SSOCK .DA #S.FD.T.SSOCK .DA #0 S.FD.HANDLER .BS 1 S.FD.SSOCK.IOHANDLER .DA #0 S.FD.SSOCK.OPEN - .DA #0 S.FD.SSOCK.CLOSE + .DA #LIBTCPIP.shutdown .DA #LIBTCPIP.Read .DA #LIBTCPIP.Write .DA #LIBTCPIP.EOF diff --git a/SYS/KERNEL.S.CORE.txt b/SYS/KERNEL.S.CORE.txt index 2c454d09..4cf7ed37 100644 --- a/SYS/KERNEL.S.CORE.txt +++ b/SYS/KERNEL.S.CORE.txt @@ -1,6 +1,5 @@ NEW -PREFIX -AUTO 4,1 + AUTO 3,1 *-------------------------------------- CORE.Run stz CORE.PSIndex @@ -201,7 +200,7 @@ CORE.GetEvents lda #Evt.Table sta IRQ.Mode ldx A2osX.ASCREEN - cpx #1 /DEV/CONSOLE + dex devID 1 is /DEV/CONSOLE bne .22 sta SYS.BASL0+38 @@ -538,10 +537,10 @@ CORE.PSFree sta .10+1 Save PS ID .2 cmp PS.Table.PID,x beq .3 + inx cpx CORE.PSCount bne .2 - beq * .3 stz PS.Table.PID,x lda PS.TABLE.hPS,x diff --git a/SYS/KERNEL.S.INIT.txt b/SYS/KERNEL.S.INIT.txt index b233fd48..d44a48c7 100644 --- a/SYS/KERNEL.S.INIT.txt +++ b/SYS/KERNEL.S.INIT.txt @@ -1057,7 +1057,6 @@ PwdMgrInit >LDYAI MSG.PWD PwdMgr.ROOT .DA #S.SESSION.P.ROOT .DA #0 UID .DA #0 GID - .BS 17 PASSWD .AZ "ROOT" NAME .AZ "Root User" GECOS .AZ "${ROOT}ROOT/" DIR diff --git a/SYS/KERNEL.S.IO.txt b/SYS/KERNEL.S.IO.txt index fae68266..0d04240d 100644 --- a/SYS/KERNEL.S.IO.txt +++ b/SYS/KERNEL.S.IO.txt @@ -247,12 +247,26 @@ IO.CLOSE.DIR ldy #S.FD.REG.REF *-------------------------------------- IO.CLOSE.CDEV IO.CLOSE.BDEV + clc + rts *-------------------------------------- IO.CLOSE.DSOCK IO.CLOSE.SSOCK + ldy #S.FD.SSOCK.CLOSE + lda (pFD),y + tax Function Offset in LIB - clc - rts + ldy #S.FD.SSOCK.IOHANDLER + lda (pFD),y + jsr K.GetMemPtr + >STYA .1+1 + + lda IO.hFD + +.1 jsr $FFFF SELF MODIFIED + + lda IO.hFD + jmp K.FreeMem *-------------------------------------- IO.CLOSE.PIPE ldy #S.FD.PIPE.S diff --git a/SYS/KERNEL.S.PS.txt b/SYS/KERNEL.S.PS.txt index d6d373ee..aff9ba04 100644 --- a/SYS/KERNEL.S.PS.txt +++ b/SYS/KERNEL.S.PS.txt @@ -175,11 +175,13 @@ PS.CreateChild ldx #0 cpy #S.PS.hStdErr+1 bne .81 + ldy #S.PS.hSID + lda (pPs),y + sta (PS.NewPSPtr),y + ldy #S.PS.PID lda (pPs),y - ldy #S.PS.PPID - sta (PS.NewPSPtr),y bra .5 .80 lda #1 /DEV/CONSOLE @@ -191,10 +193,14 @@ PS.CreateChild ldx #0 cpy #S.PS.hStdErr+1 bne .83 -.5 ldy #S.PS.hSID - lda (pPs),y + dec SID = PPID = 0, KERNEL + + ldy #S.PS.hSID sta (PS.NewPSPtr),y +.5 ldy #S.PS.PPID + sta (PS.NewPSPtr),y + lda #S.PS.F.HOLD bit PS.Flags beq .82