Kernel 0.92+

This commit is contained in:
Rémy GIBERT 2019-03-02 20:47:58 +00:00
parent d8d9c8c039
commit 9653f369c5
10 changed files with 160 additions and 150 deletions

Binary file not shown.

View File

@ -120,14 +120,39 @@ CORE.Run >LDYA ZPInputBufPtr Save Actual cmd for looping
.4 >LDYA L.CMD internal command ?
jsr CORE.LookupInputBuf
bcs .6 no...assume external...no IO token Expected
bcc .41
jsr CORE.SkipCharsA
jsr CORE.ArgV.Add
bra .42
.41 jsr CORE.SkipCharsA
txa
>STA.G CORE.IntCmd
bra .7 internal, do not add token
cpx #C.FOR
bcs .7 FOR...FI : always execute
.42 jsr CORE.StkGet IF,WHILE,FOR ?
bcs .7 no particular context, exec...
and #$C0
cmp #$C0
beq .7 context/parent context is TRUE, exec
.43 jsr CORE.GetNextCharNB
bcs .44 EOF
cmp #C.CR
beq .44
cmp #';' TODO ";"
bne .43
.44 jsr CORE.GetNextCharNB Skip EoL char
clc
rts
.5 >LDYA L.CORE.IO
jsr CORE.LookupInputBuf
bcs .6
@ -165,32 +190,13 @@ CORE.ExecCmd jsr CORE.GetNextCharNB Skip EoL char
CORE.ExecCmd.1 lda #0
sta (ZPArgVBufPtr)
jsr CORE.StkGet IF,WHILE,FOR ?
bcs .3 no particular context, exec...
tax
>LDA.G CORE.IntCmd
bmi .2 external ...
and #$3F
cmp #C.FOR
bcs .3 FOR...FI : always execute
.2 txa
bpl .8 context is FALSE, skip line
asl
bpl .8 parent context is FALSE, skip line
.3 >LDYA ZPArgVBuf
>LDYA ZPArgVBuf
>STYA ZPArgVBufPtr
>LDA.G CORE.IntCmd
bmi CORE.ExecExtCmd
tax
jmp (J.CMD,x)
.8 clc
rts
CORE.ExecExtCmd >PUSHB.G CORE.PSFlags
>LDYA ZPArgVBuf

View File

@ -457,7 +457,7 @@ S.FD.DSOCK.OPEN .EQ 3
S.FD.DSOCK.CLOSE .EQ 4
S.FD.DSOCK.READ .EQ 5
S.FD.DSOCK.WRITE .EQ 6
S.FD.DSOCK.STATUS .EQ 7
S.FD.DSOCK.EOF .EQ 7
*
S.FD.DSOCK .EQ 8
*--------------------------------------

View File

@ -382,44 +382,22 @@ SKT.shutdown.STREAM
* `>PUSHWI count`
* `>PUSHW buf`
* `lda fd`
* `>LIBCALL hLIBTCPIP,LIBTCPIP.skt.read`
* `>LIBCALL hLIBTCPIP,LIBTCPIP.read`
* ## RETURN VALUE
* CC: Y,A = bytes read
* CS: A = EC
*\--------------------------------------
SKT.Read jsr SKT.PullhFDDataInPtrLen
ldy #S.SOCKET.T
lda (ZPPtrSKT),y
cmp #S.SOCKET.T.STREAM
bne .90 bad skt
jsr SKT.EOF.I
bcs .9 I/O error
ldy #S.SOCKET.O
lda (ZPPtrSKT),y
and #S.SOCKET.O.ACCEPTCONN
bne .90 Bad Skt
tay
beq .9 exit with CC,Y,A = 0
jmp SKT.GetDataFromSktIn
ldy #S.SOCKET.TCP.S
lda (ZPPtrSKT),y
cmp #S.SOCKET.TCP.S.ESTBLSH
bcc .92 Not yet established...no data
cmp #S.SOCKET.TCP.S.FINWT2
bcs .91 closing...IO err
jsr SKT.GetDataFromSktIn
rts if CS, No data...
.90 lda #ERR.SKT.BAD
sec
rts
.91 lda #MLI.E.IO
sec
rts
.92 lda #0
sec
.99 rts
.9 rts
*/--------------------------------------
* # Write (STREAM)
* ## C
@ -429,28 +407,15 @@ SKT.Read jsr SKT.PullhFDDataInPtrLen
* `>PUSHWI count`
* `>PUSHW buf`
* `lda fd`
* `>LIBCALL hLIBTCPIP,LIBTCPIP.skt.write`
* `>LIBCALL hLIBTCPIP,LIBTCPIP.write`
* ## RETURN VALUE
* CC: Y,A = bytes written
* CS: A = EC
*\--------------------------------------
SKT.Write jsr SKT.PullhFDDataInPtrLen
ldy #S.SOCKET.T
lda (ZPPtrSKT),y
cmp #S.SOCKET.T.STREAM
bne .99
ldy #S.SOCKET.O
lda (ZPPtrSKT),y
and #S.SOCKET.O.ACCEPTCONN
bne .99
ldy #S.SOCKET.TCP.S
lda (ZPPtrSKT),y
cmp #S.SOCKET.TCP.S.ESTBLSH
bcc .90 Not yet established...no data
bne .91
jsr SKT.CheckStream
bcs .9
jsr SKT.AddDataToSktOut will call SKT.GetTCB
bcs .90
@ -461,15 +426,7 @@ SKT.Write jsr SKT.PullhFDDataInPtrLen
.90 lda #0 no data transfered
sec
rts
.91 lda #MLI.E.IO
sec
rts
.99 lda #ERR.SKT.BAD
sec
rts
.9 rts
*/--------------------------------------
* # Recv (RAW,DGRAM,SEQPACKET)
* # RecvFrom (RAW,DGRAM,SEQPACKET)
@ -480,7 +437,7 @@ SKT.Write jsr SKT.PullhFDDataInPtrLen
* **In:**
* `>PUSHW addr` (RecvFrom)
* `lda fd`
* `>LIBCALL hLIBTCPIP,LIBTCPIP.skt.Recv`
* `>LIBCALL hLIBTCPIP,LIBTCPIP.Recv`
* ## RETURN VALUE
* CC: A = hMem
* CS: A = EC
@ -589,7 +546,7 @@ SKT.Recv clc
* `>PUSHWI count`
* `>PUSHW buf`
* `lda fd`
* `>LIBCALL hLIBTCPIP,LIBTCPIP.skt.send`
* `>LIBCALL hLIBTCPIP,LIBTCPIP.send`
* ## RETURN VALUE
* CC: Y,A = bytes written
* CS: A = EC
@ -669,15 +626,47 @@ SKT.setsockopt >SYSCALL GetMemPtr
sta (ZPPtrSKT),y
* clc
rts
*--------------------------------------
*--------------------------------------
SKT.EOF >SYSCALL GetMemPtr
>STYA ZPPtrSKT
ldy #S.SOCKET.TCP.INUSED
SKT.EOF.I ldy #S.SOCKET.TCP.INUSED
lda (ZPPtrSKT),y
iny
ora (ZPPtrSKT),y
clc
bne .8
jsr SKT.CheckStream
bcs .9
lda #0 no DATA
.8 clc
.9 rts
*--------------------------------------
SKT.CheckStream ldy #S.SOCKET.T
lda (ZPPtrSKT),y
cmp #S.SOCKET.T.STREAM
bne .99
ldy #S.SOCKET.O
lda (ZPPtrSKT),y
and #S.SOCKET.O.ACCEPTCONN
bne .99
ldy #S.SOCKET.TCP.S
lda (ZPPtrSKT),y
beq .91
cmp #S.SOCKET.TCP.S.CLWAIT
bcs .91
rts CC=ESTBLSH...or less
.91 lda #MLI.E.IO
sec
rts
.99 lda #ERR.SKT.BAD
sec
rts
*/--------------------------------------
* # GetTable
@ -957,13 +946,8 @@ SKT.AddDataToSktIn
*--------------------------------------
SKT.GetDataFromSktIn
jsr SKT.GetTCB
lda SKT.Cache+S.SOCKET.TCP.INUSED
ora SKT.Cache+S.SOCKET.TCP.INUSED+1
bne .10
sec
rts A=0,NO DATA
.10 ldy #S.SOCKET.SQ.hInMem
ldy #S.SOCKET.SQ.hInMem
lda (ZPPtrSKT),y
>SYSCALL GetMemPtr
>STYA ZPTmpPtr1 Make ZPTmpPtr1=buffer base
@ -1042,11 +1026,7 @@ SKT.GetDataFromSktIn
.7 pla discard byte counter HI
.8 lda ZPTmpPtr3 Do we have transfered something?
ora ZPTmpPtr3+1
beq .9
>ADC16 SKT.Cache+S.SOCKET.TCP.INFREE,ZPTmpPtr3
.8 >ADC16 SKT.Cache+S.SOCKET.TCP.INFREE,ZPTmpPtr3
>SBC16 SKT.Cache+S.SOCKET.TCP.INUSED,ZPTmpPtr3
lda SKT.Cache+S.SOCKET.TCP.OUTACKNUM+3
@ -1074,10 +1054,6 @@ SKT.GetDataFromSktIn
>LDYA ZPTmpPtr3
clc
rts
.9
* lda #0
sec
rts
*--------------------------------------
* From SKT.Write.TCP
* Src : ZPDataInPtr/ZPDataInLen

View File

@ -117,17 +117,7 @@ CS.RUN.LOOP0 >LDYA L.ENV.TERM
ldy #S.PS.hStdOut
lda (pPs),y
>SYSCALL fwrite
bcs .9 I/O error
.2 >LDA.G ArgDev
>SYSCALL ArgV
>PUSHYA
>PUSHWI K.VER
>PUSHBI 4
>LDYA L.MSG.GREETINGS
>SYSCALL printf
.9 bcs CS.RUN.9 unable to send greetings...reset..
bcs CS.RUN.EXIT I/O error
jsr Init.Timeout
@ -148,23 +138,32 @@ CS.RUN.LOOP1 >SLEEP
cmp #IAC
beq CS.RUN.IACMODE
>SYSCALL PutChar
bcc .2
bcs CS.RUN.EXIT
bra CS.RUN.LOOP1
.1 jsr Wait.Timeout
bcc CS.RUN.LOOP1
>LDA.G ArgDev
>SYSCALL ArgV
>PUSHYA
>PUSHWI K.VER
>PUSHBI 4
>LDYA L.MSG.GREETINGS
>SYSCALL printf
bcs CS.RUN.EXIT unable to send greetings...
.2 >PUSHBI S.PS.F.HOLD
>LDA.G ArgProg
>SYSCALL ArgV
>SYSCALL ExecV
bcs CS.RUN.9
>SLEEP
>LDA.G bExitOnClose
CS.RUN.EXIT >LDA.G bExitOnClose
bmi .8
jmp CS.RUN.LOOP0

View File

@ -23,7 +23,8 @@ CS.START cld
jmp (.1,x)
.DA #$61 6502,Level 1 (65c02)
.DA #1 BIN Layout Version 1
.DA 0
.DA #S.PS.F.EVENT
.DA #0
.DA CS.END-CS.START CS
.DA DS.END-DS.START DS
.DA #64 SS
@ -51,9 +52,6 @@ CS.INIT >LDYA L.LIBTCPIP
>SYSCALL LoadLib
sta hLIBTCPIP
lda (pPs)
ora #S.PS.F.EVENT Now accept events
sta (pPs)
clc
rts
*--------------------------------------

View File

@ -63,18 +63,28 @@ CS.RUN jsr Init.Timeout
>LDYA L.MSG.TCPWAIT
>SYSCALL puts
.1 >LIBCALL hLIBTCPIP,LIBTCPIP.GETCFG is TCPIP loaded ?
.1 >SLEEP
>LIBCALL hLIBTCPIP,LIBTCPIP.GETCFG is TCPIP loaded ?
bcs .99
>STYA ZPIPCfgPtr
lda (ZPIPCfgPtr) Configured ?
bmi CS.RUN.INIT
>SLEEP
jsr Wait.Timeout
bcc .1
bcs .99
ldy #S.PS.hStdIn
lda (pPs),y
>SYSCALL feof
bcs .9 I/O err
tay
beq .1
>SYSCALL GetChar
bcs .1
bcs .9
cmp #$03
bne .1
jmp CS.RUN.ABORT
@ -84,7 +94,7 @@ CS.RUN jsr Init.Timeout
>SYSCALL puts
pla
sec
rts
.9 rts
CS.RUN.INIT ldx #3
ldy #S.IPCFG.IP+3
@ -122,16 +132,14 @@ CS.RUN.PORTOK >PUSHBI 0 no protocol
>SYSCALL puts
.2 >SLEEP
jsr CS.RUN.SERVER
bcs CS.RUN.ERR
* >SYSCALL GetChar
* bcs .2
>LDA.G hSrvSocket
>LIBCALL hLIBTCPIP,LIBTCPIP.Accept
bcs .2
* cmp #$03
* beq CS.RUN.ABORT
bra .2
jsr CS.RUN.SERVER
bcc .2
rts
.9 pha
>LDYA L.MSG.SKTERR
@ -144,15 +152,10 @@ CS.RUN.ABORT >LDYA L.MSG.ABORT
>SYSCALL puts
lda #3
CS.RUN.ERR sec
sec
rts
*--------------------------------------
CS.RUN.SERVER >LDA.G hSrvSocket
>LIBCALL hLIBTCPIP,LIBTCPIP.Accept
bcs .8
pha
CS.RUN.SERVER pha
ldy #hSockets
ldx #CONN.MAX
@ -161,7 +164,7 @@ CS.RUN.SERVER >LDA.G hSrvSocket
pla
sta (pData),y
bra CS.RUN.CLIENT
bra CS.RUN.CLIENT
.2 iny
dex
@ -172,7 +175,9 @@ CS.RUN.SERVER >LDA.G hSrvSocket
.8 clc
rts
*--------------------------------------
CS.RUN.CLIENT >STA.G hClientSocket
CS.RUN.CLIENT >SLEEP give some time for TCPIP SYN/ACK
>STA.G hClientSocket
>SYSCALL GetMemPtr
>STYA ZPSktPtr

View File

@ -1142,7 +1142,7 @@ I.ENV.ROOT .AZ "ROOT"
I.ENV.PATH .AZ "PATH=${ROOT}SBIN/:${ROOT}BIN/"
I.ENV.LIB .AZ "LIB=${ROOT}LIB/"
I.ENV.DRV .AZ "DRV=${ROOT}DRV/"
CTRLR.SHELL .AZ "${ROOT}BIN/SHELL"
CTRLR.SHELL .AZ "${ROOT}BIN/SH"
ETCINIT.CMDLINE .AZ "${ROOT}ETC/INIT"
*--------------------------------------
MLIOPEN00 .DA #3

View File

@ -404,9 +404,6 @@ IO.WRITE.CDEV ldx #IOCTL.WRITE
.9 >RET 4
*--------------------------------------
IO.EOF.SSOCK ldy #S.FD.SSOCK.EOF
.HS 2C BIT ABS
*--------------------------------------
IO.WRITE.SSOCK ldy #S.FD.SSOCK.WRITE
.HS 2C BIT ABS
*--------------------------------------
@ -419,9 +416,24 @@ IO.READ.SSOCK ldy #S.FD.SSOCK.READ
jsr K.GetMemPtr
>STYA .1+1
lda IO.hFD
lda IO.hFD
.1 jmp $FFFF SELF MODIFIED
.1 jsr $FFFF SELF MODIFIED
bcs .9
phy
ply
bne .9
tax
bne .9
inc pStack CC, Y,A = 0
inc pStack
inc pStack
inc pStack keep buf/count on stack
sec BLOCKING I/O
.9 rts
*--------------------------------------
* (pStack)+2 count
* (pStack)+0 buf
@ -702,6 +714,20 @@ IO.EOF.CDEV >LDYAI K.IOBuf
ora K.IOBuf+1
.9 rts
*--------------------------------------
IO.EOF.SSOCK ldy #S.FD.SSOCK.EOF
lda (pFD),y
tax Function Offset in LIB
ldy #S.FD.SSOCK.IOHANDLER
lda (pFD),y
jsr K.GetMemPtr
>STYA .1+1
lda IO.hFD
.1 jmp $FFFF SELF MODIFIED
*--------------------------------------
IO.EOF.PIPE
lda #MLI.E.IO
sec

View File

@ -31,7 +31,7 @@ K.FPwr ldx #ROM.PWR
jsr MATH.PullARG
plx
bra MATH.Go
jmp GP.RomCallPushFAC
*/--------------------------------------
* # Log,Sqr,Exp,Cos,Sin,Tan,ATan
* Return Log(x), Sqr(x), E^X, Cos(x), Sin(X), Tan(x), ATan(x)
@ -68,7 +68,7 @@ K.ATan ldx #ROM.ATAN
jsr MATH.PullFAC
plx
bra MATH.Go
jmp GP.RomCallPushFAC
*/--------------------------------------
* # float
* Return 'floated' long
@ -92,7 +92,7 @@ K.Float ldx #4
ldx #ROM.LTOF
MATH.Go jmp GP.RomCallPushFAC
jmp GP.RomCallPushFAC
*/--------------------------------------
* # lrintf
* Return float rounded into a long