Kernel 0.93

This commit is contained in:
Rémy GIBERT 2019-05-08 21:41:46 +02:00
parent 88f07d1457
commit c061f48838
10 changed files with 83 additions and 54 deletions

Binary file not shown.

View File

@ -13,7 +13,9 @@ NEW
.OR ZPBIN .OR ZPBIN
ZS.START ZS.START
ZPPSPtr .BS 2 ZPPSPtr .BS 2
ZPSessionPtr .BS 2
ZPArgV .BS 2 ZPArgV .BS 2
Index .BS 1
ZS.END ZS.END
.ED .ED
*-------------------------------------- *--------------------------------------
@ -79,20 +81,18 @@ CS.RUN lda #1
>LDYA L.MSG0 >LDYA L.MSG0
>SYSCALL printf >SYSCALL printf
>LDA.G PS.Index ldx Index
.1 tax .1 lda PS.Table.hPS,x
beq .2 PS0
lda PS.Table.PID,x
beq .7 beq .7
.2 jsr CS.RUN.DUMP jsr CS.RUN.DUMP
>SLEEP >SLEEP
.7 >INC.G PS.Index .7 inc Index
cmp #K.PS.MAX ldx Index
cpx #K.PS.MAX
bne .1 bne .1
.8 lda #0 tell Kernel that all done ok, but .8 lda #0 tell Kernel that all done ok, but
@ -103,33 +103,41 @@ CS.RUN lda #1
sec sec
rts rts
*-------------------------------------- *--------------------------------------
CS.RUN.DUMP phx CS.RUN.DUMP >SYSCALL GetMemPtr
lda PS.Table.hPS,x
>SYSCALL GetMemPtr
>STYA ZPPSPtr >STYA ZPPSPtr
ldy #S.PS.PPID
lda (ZPPSPtr),y
>PUSHA Parent PID
ldy #S.PS.hSID ldy #S.PS.hSID
lda (ZPPSPtr),y lda (ZPPSPtr),y
tax
lda S.Table.hSession-1,x
>SYSCALL GetMemPtr
>STYA ZPSessionPtr
ldy #S.SESSION.UID
lda (ZPSessionPtr),y
>PUSHA >PUSHA
jsr CS.RUN.DecodeFlags jsr CS.RUN.DecodeFlags
>PUSHEA.G PS.FLAGS >PUSHEA.G PS.FLAGS
plx ldx Index
lda PS.Table.Stats,x lda PS.Table.Stats,x
>PUSHA CPU% >PUSHA CPU%
ldy #S.PS.PID ldy #S.PS.PPID
lda (ZPPSPtr),y lda (ZPPSPtr),y
>PUSHA >PUSHA
>PUSHBI 6
iny S.PS.PID
lda (ZPPSPtr),y
>PUSHA
lda PS.Table.hPS,x
>PUSHA
>PUSHBI 7
>LDYA L.MSG1 >LDYA L.MSG1
>SYSCALL printf >SYSCALL printf
bcs .9 bcs .9
@ -200,8 +208,8 @@ CS.QUIT clc
rts rts
*-------------------------------------- *--------------------------------------
CS.END CS.END
MSG0 .AZ "\e[7lID CPU\% Flags UID PID Command Line\r\n" MSG0 .AZ "\e[7lhPS ID PID CPU\% Flags UID Command Line\r\n"
MSG1 .AZ "%03d %3d\% %s %03d %03d" MSG1 .AZ "%3d %3d %3d %3d\% %s %3d"
MSG2 .AZ " %s" MSG2 .AZ " %s"
MSG3 .AZ "\r\n" MSG3 .AZ "\r\n"
MSG.FLAGS .AS "IRQDHSEN" MSG.FLAGS .AS "IRQDHSEN"
@ -209,7 +217,6 @@ MSG.FLAGS .AS "IRQDHSEN"
.DUMMY .DUMMY
.OR 0 .OR 0
DS.START DS.START
PS.Index .BS 1
PS.FLAGS .BS 9 PS.FLAGS .BS 9
DS.END DS.END
.ED .ED

View File

@ -1,6 +1,5 @@
NEW NEW
PREFIX AUTO 3,1
AUTO 4,1
.LIST OFF .LIST OFF
*-------------------------------------- *--------------------------------------
Mem.Table .EQ $0800 Mem.Table .EQ $0800

View File

@ -510,7 +510,7 @@ SKT.GetDataFromSktIn
ora #S.TCP.OPTIONS.ACK ora #S.TCP.OPTIONS.ACK
sta (ZPPtrSKT),y 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 >LDYA ZPTmpPtr3
clc clc

View File

@ -402,7 +402,8 @@ TCP.IN.SetDataInPtrAndLen
.2 sta ZPDataInPtr .2 sta ZPDataInPtr
stx ZPDataInPtr+1 stx ZPDataInPtr+1
rts
TCP.IN.RTS rts
*-------------------------------------- *--------------------------------------
TCP.OUT jsr SKT.GetTCB 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 >LDYAI K.TCP.MSS yes send only MSS
.2 jsr TCP.NewFrame .2 jsr TCP.NewFrame
bcs TCP.OUT.9 bcs TCP.IN.RTS
jsr SKT.GetDataFromSktOut jsr SKT.GetDataFromSktOut
ldy #S.SOCKET.TCP.O ldy #S.SOCKET.TCP.O
lda (ZPPtrSKT),y lda (ZPPtrSKT),y
ora #S.TCP.OPTIONS.ACK+S.TCP.OPTIONS.PSH 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 lda SKT.Cache+S.SOCKET.TCP.OUTNEXTSEQ+3
clc clc
@ -456,21 +459,23 @@ TCP.OUT.I lda SKT.Cache+S.SOCKET.TCP.OUTTOSEND+1
inc SKT.Cache+S.SOCKET.TCP.OUTNEXTSEQ inc SKT.Cache+S.SOCKET.TCP.OUTNEXTSEQ
.80 jmp SKT.StoreTCB exits with CC .80 jmp SKT.StoreTCB exits with CC
TCP.OUT.9 rts
*-------------------------------------- *--------------------------------------
TCP.OUT.SendOptA TCP.OUT.SendOptA
sta .1+1 ldy #S.SOCKET.TCP.O
ora (ZPPtrSKT),y
sta (ZPPtrSKT),y
>LDYAI 0 >LDYAI 0
jsr TCP.NewFrame jsr TCP.NewFrame
bcs TCP.OUT.9 bcs TCP.IN.RTS
.1 lda #$ff TCP.OUT.Send ldy #S.SOCKET.TCP.O
lda (ZPPtrSKT),y
TCP.OUT.SendOptA.1
ldy #S.TCP.OPTIONS ldy #S.TCP.OPTIONS
sta (ZPFrameOutPtr),y sta (ZPFrameOutPtr),y
bit #S.TCP.OPTIONS.ACK bit #S.TCP.OPTIONS.ACK
beq .10 beq .2
ldx #3 ldx #3
ldy #S.TCP.ACKNUM+3 ldy #S.TCP.ACKNUM+3
@ -481,14 +486,14 @@ TCP.OUT.SendOptA.1
dex dex
bpl .1 bpl .1
.10 ldx #3 .2 ldx #3
ldy #S.TCP.SEQNUM+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 sta (ZPFrameOutPtr),y
dey dey
dex dex
bpl .2 bpl .3
ldy #S.TCP.WINDOW ldy #S.TCP.WINDOW
lda SKT.Cache+S.SOCKET.TCP.INFREE+1 lda SKT.Cache+S.SOCKET.TCP.INFREE+1

View File

@ -368,7 +368,7 @@ FD.DSOCK .DA #S.FD.T.DSOCK
.DA #0 S.FD.HANDLER .DA #0 S.FD.HANDLER
.BS 1 S.FD.DSOCK.IOHANDLER .BS 1 S.FD.DSOCK.IOHANDLER
.DA #0 S.FD.DSOCK.OPEN .DA #0 S.FD.DSOCK.OPEN
.DA #0 S.FD.DSOCK.CLOSE .DA #LIBTCPIP.shutdown
.DA #LIBTCPIP.Recv .DA #LIBTCPIP.Recv
.DA #LIBTCPIP.Send .DA #LIBTCPIP.Send
.DA #0 S.FD.DSOCK.STATUS .DA #0 S.FD.DSOCK.STATUS
@ -382,7 +382,7 @@ FD.SSOCK .DA #S.FD.T.SSOCK
.DA #0 S.FD.HANDLER .DA #0 S.FD.HANDLER
.BS 1 S.FD.SSOCK.IOHANDLER .BS 1 S.FD.SSOCK.IOHANDLER
.DA #0 S.FD.SSOCK.OPEN .DA #0 S.FD.SSOCK.OPEN
.DA #0 S.FD.SSOCK.CLOSE .DA #LIBTCPIP.shutdown
.DA #LIBTCPIP.Read .DA #LIBTCPIP.Read
.DA #LIBTCPIP.Write .DA #LIBTCPIP.Write
.DA #LIBTCPIP.EOF .DA #LIBTCPIP.EOF

View File

@ -1,6 +1,5 @@
NEW NEW
PREFIX AUTO 3,1
AUTO 4,1
*-------------------------------------- *--------------------------------------
CORE.Run stz CORE.PSIndex CORE.Run stz CORE.PSIndex
@ -201,7 +200,7 @@ CORE.GetEvents lda #Evt.Table
sta IRQ.Mode sta IRQ.Mode
ldx A2osX.ASCREEN ldx A2osX.ASCREEN
cpx #1 /DEV/CONSOLE dex devID 1 is /DEV/CONSOLE
bne .22 bne .22
sta SYS.BASL0+38 sta SYS.BASL0+38
@ -538,10 +537,10 @@ CORE.PSFree sta .10+1 Save PS ID
.2 cmp PS.Table.PID,x .2 cmp PS.Table.PID,x
beq .3 beq .3
inx inx
cpx CORE.PSCount cpx CORE.PSCount
bne .2 bne .2
beq *
.3 stz PS.Table.PID,x .3 stz PS.Table.PID,x
lda PS.TABLE.hPS,x lda PS.TABLE.hPS,x

View File

@ -1057,7 +1057,6 @@ PwdMgrInit >LDYAI MSG.PWD
PwdMgr.ROOT .DA #S.SESSION.P.ROOT PwdMgr.ROOT .DA #S.SESSION.P.ROOT
.DA #0 UID .DA #0 UID
.DA #0 GID .DA #0 GID
.BS 17 PASSWD
.AZ "ROOT" NAME .AZ "ROOT" NAME
.AZ "Root User" GECOS .AZ "Root User" GECOS
.AZ "${ROOT}ROOT/" DIR .AZ "${ROOT}ROOT/" DIR

View File

@ -247,12 +247,26 @@ IO.CLOSE.DIR ldy #S.FD.REG.REF
*-------------------------------------- *--------------------------------------
IO.CLOSE.CDEV IO.CLOSE.CDEV
IO.CLOSE.BDEV IO.CLOSE.BDEV
clc
rts
*-------------------------------------- *--------------------------------------
IO.CLOSE.DSOCK IO.CLOSE.DSOCK
IO.CLOSE.SSOCK IO.CLOSE.SSOCK
ldy #S.FD.SSOCK.CLOSE
lda (pFD),y
tax Function Offset in LIB
clc ldy #S.FD.SSOCK.IOHANDLER
rts 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 IO.CLOSE.PIPE ldy #S.FD.PIPE.S

View File

@ -175,11 +175,13 @@ PS.CreateChild ldx #0
cpy #S.PS.hStdErr+1 cpy #S.PS.hStdErr+1
bne .81 bne .81
ldy #S.PS.hSID
lda (pPs),y
sta (PS.NewPSPtr),y
ldy #S.PS.PID ldy #S.PS.PID
lda (pPs),y lda (pPs),y
ldy #S.PS.PPID
sta (PS.NewPSPtr),y
bra .5 bra .5
.80 lda #1 /DEV/CONSOLE .80 lda #1 /DEV/CONSOLE
@ -191,8 +193,12 @@ PS.CreateChild ldx #0
cpy #S.PS.hStdErr+1 cpy #S.PS.hStdErr+1
bne .83 bne .83
.5 ldy #S.PS.hSID dec SID = PPID = 0, KERNEL
lda (pPs),y
ldy #S.PS.hSID
sta (PS.NewPSPtr),y
.5 ldy #S.PS.PPID
sta (PS.NewPSPtr),y sta (PS.NewPSPtr),y
lda #S.PS.F.HOLD lda #S.PS.F.HOLD