Kernel 0.9.2

This commit is contained in:
Rémy GIBERT 2018-11-05 08:12:31 +01:00
parent 005c2ee1c6
commit 49f95d6184
3 changed files with 30 additions and 25 deletions

Binary file not shown.

Binary file not shown.

View File

@ -35,7 +35,9 @@ CS.START cld
.DA CS.DOEVENT
.DA CS.QUIT
L.LIBTCPIP .DA LIBTCPIP
L.Socket .DA Socket
L.SA.LOCAL .DA SA.LOCAL
L.SA.REMOTE .DA SA.REMOTE
L.SA.REMOTE.AD .DA SA.REMOTE+S.SOCKADDR.ADDR
L.ICMP.Request .DA ICMP.Request
L.MSG.IPKO .DA MSG.IPKO
L.MSG.USAGE .DA MSG.USAGE
@ -71,10 +73,11 @@ CS.RUN.IPOK
>SYSCALL ArgV
bcs .8
>STYA ZPTmpPtr
>SYSCALL puts
lda (ZPTmpPtr)
cmp #'-'
bne .2
bne .21
ldy #1
lda (ZPTmpPtr),y
@ -89,9 +92,9 @@ CS.RUN.IPOK
>STA.G PingCount
bra .1
jsr Init.Timeout
.21 jsr Init.Timeout
.2 >PUSHEA.G DST.IP
.2 >PUSHW L.SA.REMOTE.AD
>PUSHW ZPTmpPtr
>LIBCALL hLIBTCPIP,LIBTCPIP.HST.GETBYNAME
bcc .3
@ -108,7 +111,7 @@ CS.RUN.IPOK
>STA.G ArgHostName
jmp .1
.8 >LDA.G DST.IP
.8 lda SA.REMOTE+S.SOCKADDR.ADDR
bne CS.RUN.ARGSOK
.9 >PUSHBI 0
@ -124,13 +127,10 @@ CS.RUN.ARGSOK >LDA.G ArgHostName
>SYSCALL ArgV
>PUSHYA
ldy #DST.IP+3
ldx #3
.1 lda (pData),y
sta Socket.Dst.Addr,x
.1 lda SA.REMOTE+S.SOCKADDR.ADDR,x
>PUSHA
dey
dex
bpl .1
@ -142,21 +142,22 @@ CS.RUN.OPENSKT ldx #3
ldy #S.IPCFG.IP+3
.1 lda (ZPIPCfgPtr),y
sta Socket.Src.Addr,x
sta SA.LOCAL+S.SOCKADDR.ADDR,x
dey
dex
bpl .1
ldy #Identifier
lda A2OSX.RANDOM16
sta Socket.Dst.Port
sta SA.REMOTE+S.SOCKADDR.PORT
sta (pData),y
iny
lda A2OSX.RANDOM16+1
sta Socket.Dst.Port+1
sta SA.REMOTE+S.SOCKADDR.PORT+1
sta (pData),y
>PUSHW L.Socket
>PUSHBI S.IP.PROTOCOL.ICMP
lda #S.SOCKET.T.RAW
>LIBCALL hLIBTCPIP,LIBTCPIP.socket
bcc .2
@ -167,6 +168,12 @@ CS.RUN.OPENSKT ldx #3
rts
.2 >STA.G hSocket
pha
>PUSHW L.SA.LOCAL
pla
>LIBCALL hLIBTCPIP,LIBTCPIP.Bind
bcc CS.RUN.SEND.ECHO
rts
CS.RUN.SEND.ECHO
ldy #Identifier
@ -251,13 +258,11 @@ CS.DOEVENT lda (pEvent)
rts
*--------------------------------------
CS.Print.UNREACH
ldx #4
ldy #DST.IP+3
ldx #3
.1 >PUSHB (pData),y
dey
.1 >PUSHB SA.LOCAL+S.SOCKADDR.ADDR,x
dex
bne .1
bpl .1
>PUSHBI 4
>LDYA L.MSG.UNREACH
@ -349,14 +354,15 @@ MSG.UNREACH .AZ "%d.%d.%d.%d: TimeOut/Host unreachable\r\n"
MSG.REPLY .AZ "32 bytes from %d.%d.%d.%d, icmp_seq=%D, ttl=%d, time=%D ms\r\n"
hLIBTCPIP .BS 1
*--------------------------------------
Socket .DA #S.SOCKET.T.RAW
SA.LOCAL .DA #AF.INET S.SOCKADDR.AF
.BS 1
.DA #S.IP.PROTOCOL.ICMP
.BS 4 S.SOCKADDR.ADDR
.BS 2 S.SOCKADDR.PORT
*--------------------------------------
SA.REMOTE .DA #AF.INET S.SOCKADDR.AF
.BS 1
Socket.Src.Addr .BS 4
Socket.Src.Port .DA 0 Dynamic
Socket.Dst.Addr .BS 4
Socket.Dst.Port .DA 0 Identifier
.BS 4 S.SOCKADDR.ADDR
.BS 2
*--------------------------------------
ICMP.Request .DA #S.ICMP.TYPE.ECHOREQ
.DA #0 CODE
@ -373,7 +379,6 @@ DS.START
ArgIndex .BS 1
PingCount .BS 1
ArgHostName .BS 1
DST.IP .BS 4
hSocket .BS 1
hFrame .BS 1
Identifier .BS 2