mirror of
https://github.com/A2osX/A2osX.git
synced 2025-04-22 16:40:09 +00:00
Kernel version 0.9 : Bug Fix in UDP/SKT
This commit is contained in:
parent
2aa2b79f72
commit
4d00562042
BIN
A2OSX.BOOT.po
BIN
A2OSX.BOOT.po
Binary file not shown.
BIN
A2OSX.SRC.po
BIN
A2OSX.SRC.po
Binary file not shown.
@ -38,8 +38,6 @@ L.MSG1 .DA MSG1
|
||||
.DA MSG1.UDP
|
||||
.DA MSG1.TCP
|
||||
.DA MSG1.RAW
|
||||
.DA MSG1.RDM
|
||||
.DA MSG1.SEQ
|
||||
.DA MSG1.INV
|
||||
L.MSG1.S .DA MSG1.S.0
|
||||
.DA MSG1.S.1
|
||||
@ -91,9 +89,10 @@ CS.RUN >LDYA L.MSG0
|
||||
bne .2
|
||||
|
||||
lda (ZPPTR1)
|
||||
cmp #S.SOCKET.SOCK.STREAM
|
||||
cmp #S.SOCKET.SOCK.RAW+1
|
||||
bcc .3
|
||||
lda #S.SOCKET.SOCK.STREAM
|
||||
|
||||
lda #S.SOCKET.SOCK.RAW+1
|
||||
.3 asl
|
||||
tax
|
||||
>PUSHB L.MSG1+1,x
|
||||
@ -132,8 +131,6 @@ MSG1 >CSTR "%s %03d.%03d.%03d.%03d:%05D %03d.%03d.%03d.%03d:%05D %b %s\n"
|
||||
MSG1.UDP >CSTR "UDP"
|
||||
MSG1.TCP >CSTR "TCP"
|
||||
MSG1.RAW >CSTR "RAW"
|
||||
MSG1.RDM >CSTR "RDM"
|
||||
MSG1.SEQ >CSTR "SEQ"
|
||||
MSG1.INV >CSTR "???"
|
||||
MSG1.S.0 >CSTR "*"
|
||||
MSG1.S.1 >CSTR "LISTENING"
|
||||
|
163
BIN/PING.S.txt
163
BIN/PING.S.txt
@ -37,12 +37,14 @@ CS.START cld
|
||||
.DA CS.QUIT
|
||||
L.LIBTCPIP .DA LIBTCPIP
|
||||
L.Socket .DA Socket
|
||||
L.ICMP.Request .DA ICMP.Request
|
||||
L.MSG.IPKO .DA MSG.IPKO
|
||||
L.MSG.USAGE .DA MSG.USAGE
|
||||
L.MSG.UNKNOWN .DA MSG.UNKNOWN
|
||||
L.MSG.HOSTOK .DA MSG.HOSTOK
|
||||
L.MSG2 .DA MSG2
|
||||
L.MSG3 .DA MSG3
|
||||
L.MSG.SKTKO .DA MSG.SKTKO
|
||||
L.MSG.REPLY .DA MSG.REPLY
|
||||
L.MSG.UNREACH .DA MSG.UNREACH
|
||||
.DA 0
|
||||
*--------------------------------------
|
||||
CS.INIT >LDYA L.LIBTCPIP
|
||||
@ -103,13 +105,14 @@ CS.RUN.HOSTOK lda #1
|
||||
>PUSHYA
|
||||
|
||||
ldy #DST.IP+3
|
||||
>PUSHB (pData),y DST.IP+3
|
||||
ldx #3
|
||||
|
||||
.1 lda (pData),y
|
||||
sta Socket.Dst.Addr,x
|
||||
>PUSHA
|
||||
dey
|
||||
>PUSHB (pData),y DST.IP+2
|
||||
dey
|
||||
>PUSHB (pData),y DST.IP+1
|
||||
dey
|
||||
>PUSHB (pData),y DST.IP
|
||||
dex
|
||||
bpl .1
|
||||
|
||||
>LDYA L.MSG.HOSTOK
|
||||
>SYSCALL CPrintFYA
|
||||
@ -123,96 +126,58 @@ CS.RUN.OPENSKT ldx #3
|
||||
dex
|
||||
bpl .1
|
||||
|
||||
ldy #Identifier
|
||||
lda A2OSX.RANDOM16
|
||||
sta Socket.Src.Port
|
||||
sta (pData),y
|
||||
iny
|
||||
lda A2OSX.RANDOM16+1
|
||||
sta Socket.Src.Port+1
|
||||
|
||||
sta (pData),y
|
||||
|
||||
lda #0
|
||||
ldy #Sequence
|
||||
sta (pData),y
|
||||
iny
|
||||
sta (pData),y
|
||||
|
||||
ldy #S.ICMP.SEQUENCE
|
||||
sta (ZPFrameBase),y
|
||||
iny
|
||||
txa
|
||||
sta (ZPFrameBase),y
|
||||
|
||||
>PUSHW L.Socket
|
||||
>LIBCALL hLIBTCPIP,LIBTCPIP.SKT.NEW
|
||||
bcs .99
|
||||
bcc .2
|
||||
|
||||
txa
|
||||
>LDYA L.MSG.SKTKO
|
||||
>SYSCALL CPrintFYA
|
||||
lda #SYSMGR.ERRSYN
|
||||
sec
|
||||
rts
|
||||
|
||||
.2 txa
|
||||
ldy #hSocket
|
||||
sta (pData),y
|
||||
|
||||
ldy #Identifier
|
||||
lda (pData),y
|
||||
tax
|
||||
iny
|
||||
lda (pData),y
|
||||
|
||||
ldy #S.ICMP.IDENTIFIER+1
|
||||
sta (ZPFrameBase),y
|
||||
dey
|
||||
txa
|
||||
sta (ZPFrameBase),y
|
||||
|
||||
ldy #Sequence+1
|
||||
lda (pData),y
|
||||
tax
|
||||
dey
|
||||
lda (pData),y
|
||||
inc
|
||||
sta (pData),y
|
||||
bne .2
|
||||
pha
|
||||
inx
|
||||
txa
|
||||
sta (pData),y
|
||||
pla
|
||||
|
||||
.2 ldy #S.ICMP.SEQUENCE
|
||||
sta (ZPFrameBase),y
|
||||
iny
|
||||
txa
|
||||
sta (ZPFrameBase),y
|
||||
|
||||
ldx #31
|
||||
ldy #S.ICMP+31
|
||||
.21 txa
|
||||
and #$0f
|
||||
ora #$60
|
||||
sta (ZPFrameBase),y
|
||||
dey
|
||||
dex
|
||||
bpl .21
|
||||
|
||||
CS.RUN.SEND.ECHO
|
||||
ldy #Identifier
|
||||
lda (pData),y
|
||||
sta ICMP.Request.ID
|
||||
iny
|
||||
lda (pData),y
|
||||
sta ICMP.Request.ID+1
|
||||
|
||||
jsr Init.Timeout
|
||||
|
||||
.3 ldy #hSocket
|
||||
>PUSHWI ICMP.RequestLen
|
||||
>PUSHW L.ICMP.Request
|
||||
|
||||
ldy #hSocket
|
||||
>PUSHB (pData),y
|
||||
>LIBCALL hLIBTCPIP,LIBTCPIP.SKT.SEND
|
||||
|
||||
bcc .4
|
||||
>SYSCALL Sleep
|
||||
|
||||
jsr Wait.Timeout
|
||||
bcc .3
|
||||
|
||||
|
||||
ldy #bReply
|
||||
lda #0
|
||||
sta (pData),y
|
||||
bcs CS.RUN.ERR
|
||||
|
||||
jsr Init.Timeout
|
||||
|
||||
CS.RUN.WAIT.REPLY
|
||||
>SYSCALL Sleep
|
||||
>SYSCALL GetA
|
||||
>SYSCALL GetC
|
||||
bcs .1
|
||||
cmp #3 Ctrl-C
|
||||
beq .9
|
||||
@ -227,30 +192,24 @@ CS.RUN.WAIT.REPLY
|
||||
>SYSCALL GetMemPtrA
|
||||
>STYA ZPFrameBase
|
||||
jsr CS.Print.REPLY
|
||||
bcs CS.RUN.ERR
|
||||
|
||||
bra CS.RUN.SEND.ECHO
|
||||
|
||||
.2 jsr Wait.Timeout
|
||||
bcc CS.RUN.WAIT.REPLY
|
||||
|
||||
ldy #DST.IP+3
|
||||
>PUSHB (pData),y DST.IP+3
|
||||
dey
|
||||
>PUSHB (pData),y DST.IP+2
|
||||
dey
|
||||
>PUSHB (pData),y DST.IP+1
|
||||
dey
|
||||
>PUSHB (pData),y DST.IP
|
||||
>LDYA L.MSG.UNREACH
|
||||
>SYSCALL CPrintFYA
|
||||
jsr CS.Print.UNREACH
|
||||
bcs CS.RUN.ERR
|
||||
|
||||
jmp CS.RUN.SEND.ECHO
|
||||
bra CS.RUN.SEND.ECHO
|
||||
|
||||
.9 lda #0
|
||||
sec
|
||||
rts
|
||||
CS.RUN.ERR rts
|
||||
*--------------------------------------
|
||||
CS.DOEVENT lda (pEvent)
|
||||
bpl .1 is it a TIMER event?
|
||||
bpl .9 is it a TIMER event?
|
||||
|
||||
ldy #TimeOut
|
||||
lda (pData),y
|
||||
@ -262,7 +221,18 @@ CS.DOEVENT lda (pEvent)
|
||||
.9 sec do not discard TIMER event
|
||||
rts
|
||||
*--------------------------------------
|
||||
|
||||
CS.Print.UNREACH
|
||||
ldy #DST.IP+3
|
||||
>PUSHB (pData),y DST.IP+3
|
||||
dey
|
||||
>PUSHB (pData),y DST.IP+2
|
||||
dey
|
||||
>PUSHB (pData),y DST.IP+1
|
||||
dey
|
||||
>PUSHB (pData),y DST.IP
|
||||
>LDYA L.MSG.UNREACH
|
||||
>SYSCALL CPrintFYA
|
||||
rts
|
||||
*--------------------------------------
|
||||
CS.Print.REPLY lda #TIMEOUT.MAX
|
||||
sec
|
||||
@ -304,14 +274,16 @@ CS.Print.REPLY lda #TIMEOUT.MAX
|
||||
|
||||
>LDYA L.MSG.REPLY
|
||||
>SYSCALL CPrintFYA
|
||||
|
||||
ldy #bReply
|
||||
lda (pData),y
|
||||
inc
|
||||
sta (pData),y
|
||||
rts
|
||||
*--------------------------------------
|
||||
CS.QUIT lda hLIBTCPIP
|
||||
CS.QUIT ldy #hSocket
|
||||
>DEBUG
|
||||
lda (pData),y
|
||||
beq .1
|
||||
|
||||
>LIBCALL hLIBTCPIP,LIBTCPIP.SKT.CLOSEA
|
||||
|
||||
.1 lda hLIBTCPIP
|
||||
>SYSCALL UnloadLibA
|
||||
clc
|
||||
rts
|
||||
@ -335,13 +307,14 @@ MSG.IPKO >CSTR "TCP/IP Not Loaded/Configured.\n"
|
||||
MSG.USAGE >CSTR "Usage : PING <ip|host>\n"
|
||||
MSG.UNKNOWN >CSTR "%S: Unknown host\n"
|
||||
MSG.HOSTOK >CSTR "PING %d.%d.%d.%d (%S)\n"
|
||||
MSG.SKTKO >CSTR "Failed to Open Socket.\n"
|
||||
MSG.UNREACH >CSTR "%d.%d.%d.%d: TimeOut/Host unreachable\n"
|
||||
MSG.REPLY >CSTR "32 bytes from %d.%d.%d.%d, icmp_seq=%D, ttl=%d, time=%D ms\n"
|
||||
hLIBTCPIP .BS 1
|
||||
TimeOut.ms .BS 2
|
||||
Socket .DA #S.SOCKET.SOCK.RAW
|
||||
.BS 2
|
||||
.BS #S.IP.PROTOCOL.ICMP
|
||||
.DA #S.IP.PROTOCOL.ICMP
|
||||
Socket.Src.Addr .BS 4
|
||||
Socket.Src.Port .BS 2 Identifier
|
||||
Socket.Dst.Addr .BS 4
|
||||
@ -355,11 +328,15 @@ ICMP.Request.ID .BS 2
|
||||
ICMP.Request.SQ .BS 2
|
||||
.AS "ABCDEFGHIJKLMNOP"
|
||||
.AS "QRSTUVWXYZ012345"
|
||||
ICMP.RequestLen .EQ *-ICMP.Request
|
||||
*--------------------------------------
|
||||
.DUMMY
|
||||
.OR 0
|
||||
DS.START
|
||||
DST.IP .BS 4
|
||||
hSocket .BS 1
|
||||
hFrame .BS 1
|
||||
Identifier .BS 2
|
||||
Sequence .BS 2
|
||||
TimeOut .BS 1
|
||||
DS.END
|
||||
|
@ -74,6 +74,9 @@ SET.IPCFG >PULLW ZPTmpPtr1
|
||||
dex
|
||||
bpl .5
|
||||
|
||||
stz DNS.SOCKET.SP
|
||||
stz DNS.SOCKET.SP+1
|
||||
|
||||
>PUSHW L.DNS.SOCKET
|
||||
jsr SKT.NEW
|
||||
bcs .9
|
||||
@ -89,6 +92,9 @@ SET.IPCFG >PULLW ZPTmpPtr1
|
||||
dex
|
||||
bpl .7
|
||||
|
||||
stz DNS.SOCKET.SP
|
||||
stz DNS.SOCKET.SP+1
|
||||
|
||||
>PUSHW L.DNS.SOCKET
|
||||
jsr SKT.NEW
|
||||
bcs .9
|
||||
|
@ -273,10 +273,13 @@ SKT.RCVDA jsr SKT.GetA
|
||||
*--------------------------------------
|
||||
SKT.CLOSEA jsr SKT.GetA
|
||||
bcs .9
|
||||
cpx #S.SOCKET.SOCK.DGRAM
|
||||
|
||||
cpx #S.SOCKET.SOCK.DGRAM
|
||||
beq .8
|
||||
|
||||
cpx #S.SOCKET.SOCK.RAW
|
||||
beq .8
|
||||
|
||||
ldy #S.SOCKET.SO
|
||||
lda (ZPPtrSKT),y
|
||||
bit #S.SOCKET.SO.ACCEPTCONN
|
||||
@ -295,13 +298,13 @@ SKT.GETTABLE >LDYA L.SKT.TABLE
|
||||
*--------------------------------------
|
||||
SKT.GetA stz ZPPtrSKT
|
||||
|
||||
and #$7f Strip off msb
|
||||
lsr
|
||||
ror ZPPtrSKT
|
||||
lsr
|
||||
ror ZPPtrSKT
|
||||
lsr
|
||||
ror ZPPtrSKT
|
||||
|
||||
pha
|
||||
|
||||
lda ZPPtrSKT
|
||||
|
@ -178,12 +178,14 @@ ToLowerCaseA cmp #'A'
|
||||
GetDynPort inc DYNPORT.LAST
|
||||
bne .1
|
||||
inc DYNPORT.LAST+1
|
||||
|
||||
lda DYNPORT.LAST
|
||||
sec
|
||||
sbc #K.DYNPORT.END
|
||||
cmp #K.DYNPORT.END
|
||||
lda DYNPORT.LAST+1
|
||||
sbc /K.DYNPORT.END
|
||||
|
||||
bcs .1
|
||||
|
||||
>LDAXI K.DYNPORT.START
|
||||
>STAX DYNPORT.LAST
|
||||
rts CC
|
||||
|
Loading…
x
Reference in New Issue
Block a user