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