Kernel 0.93+

This commit is contained in:
Rémy GIBERT 2019-12-07 18:53:45 +01:00
parent f162bd0bbe
commit 6da3053e17
11 changed files with 77 additions and 48 deletions

Binary file not shown.

View File

@ -162,7 +162,7 @@ CS.END
libtcpip .az "libtcpip" libtcpip .az "libtcpip"
hLIBTCPIP .BS 1 hLIBTCPIP .BS 1
MSG0 .AZ "Type Prot Local Remote Options Status" MSG0 .AZ "Type Prot Local Remote Options Status"
MSG1 .AZ "%s %s %03d.%03d.%03d.%03d:%05D %03d.%03d.%03d.%03d:%05D %b %s\r\n" MSG1 .AZ "%s %s %3d.%3d.%3d.%3d:%5D %3d.%3d.%3d.%3d:%5D %b %s\r\n"
MSG1.T.RAW .AZ "RAW " MSG1.T.RAW .AZ "RAW "
MSG1.T.DGRAM .AZ "DGRAM " MSG1.T.DGRAM .AZ "DGRAM "
MSG1.T.SEQPKT .AZ "SEQPKT" MSG1.T.SEQPKT .AZ "SEQPKT"

View File

@ -28,6 +28,8 @@ hFrame .BS 1
PingCount .BS 1 PingCount .BS 1
TimeOut .BS 1 TimeOut .BS 1
IP.Remote .BS 4
ZS.END .ED ZS.END .ED
*-------------------------------------- *--------------------------------------
* File Header (16 Bytes) * File Header (16 Bytes)
@ -49,9 +51,6 @@ CS.START cld
.DA CS.DOEVENT .DA CS.DOEVENT
.DA CS.QUIT .DA CS.QUIT
L.LIBTCPIP .DA LIBTCPIP L.LIBTCPIP .DA LIBTCPIP
L.SA.LOCAL .DA SA.LOCAL
L.SA.REMOTE .DA SA.REMOTE
L.SA.REMOTE.AD .DA SA.REMOTE+S.SOCKADDR.ADDR
L.MSG.IPKO .DA MSG.IPKO L.MSG.IPKO .DA MSG.IPKO
L.MSG.USAGE .DA MSG.USAGE L.MSG.USAGE .DA MSG.USAGE
L.MSG.UNKNOWN .DA MSG.UNKNOWN L.MSG.UNKNOWN .DA MSG.UNKNOWN
@ -71,7 +70,7 @@ CS.INIT >LDYA L.LIBTCPIP
CS.RUN >LIBCALL hLIBTCPIP,LIBTCPIP.GETCFG is TCPIP loaded ? CS.RUN >LIBCALL hLIBTCPIP,LIBTCPIP.GETCFG is TCPIP loaded ?
>STYA ZPIPCfgPtr >STYA ZPIPCfgPtr
lda (ZPIPCfgPtr) Configured ? lda (ZPIPCfgPtr) Configured ?
bmi CS.RUN.IPOK bmi .1
>LDYA L.MSG.IPKO >LDYA L.MSG.IPKO
>SYSCALL puts >SYSCALL puts
@ -79,6 +78,14 @@ CS.RUN >LIBCALL hLIBTCPIP,LIBTCPIP.GETCFG is TCPIP loaded ?
sec sec
rts rts
.1 ldy #DATA.Len-1
.2 lda ICMP.Request,y
sta (pData),y
dey
bpl .2
CS.RUN.IPOK inc ArgIndex CS.RUN.IPOK inc ArgIndex
lda ArgIndex lda ArgIndex
>SYSCALL ArgV >SYSCALL ArgV
@ -106,7 +113,7 @@ CS.RUN.IPOK inc ArgIndex
.1 lda #TIMEOUT.MAX .1 lda #TIMEOUT.MAX
sta Timeout sta Timeout
.2 >PUSHW L.SA.REMOTE.AD .2 >PUSHEA.G SA.REMOTE+S.SOCKADDR.ADDR
>PUSHW ZPTmpPtr >PUSHW ZPTmpPtr
>LIBCALL hLIBTCPIP,LIBTCPIP.HST.GETBYNAME >LIBCALL hLIBTCPIP,LIBTCPIP.HST.GETBYNAME
bcc .3 bcc .3
@ -124,7 +131,7 @@ CS.RUN.IPOK inc ArgIndex
sta ArgHostName sta ArgHostName
bra CS.RUN.IPOK bra CS.RUN.IPOK
.8 lda SA.REMOTE+S.SOCKADDR.ADDR .8 >LDA.G SA.REMOTE+S.SOCKADDR.ADDR
bne CS.RUN.ARGSOK bne CS.RUN.ARGSOK
.9 >PUSHBI 0 .9 >PUSHBI 0
@ -140,9 +147,11 @@ CS.RUN.ARGSOK lda ArgHostName
>PUSHYA >PUSHYA
ldx #3 ldx #3
ldy #SA.REMOTE+S.SOCKADDR.ADDR+3
.1 lda SA.REMOTE+S.SOCKADDR.ADDR,x .1 lda (pData),y
>PUSHA >PUSHA
dey
dex dex
bpl .1 bpl .1
@ -154,19 +163,30 @@ CS.RUN.OPENSKT ldx #3
ldy #S.IPCFG.IP+3 ldy #S.IPCFG.IP+3
.1 lda (ZPIPCfgPtr),y .1 lda (ZPIPCfgPtr),y
sta SA.LOCAL+S.SOCKADDR.ADDR,x sta IP.Remote,x
dey dey
dex dex
bpl .1 bpl .1
ldx #3
ldy #SA.LOCAL+S.SOCKADDR.ADDR+3
.2 lda IP.Remote,x
sta (pData),y
dey
dex
bpl .2
lda A2OSX.RANDOM16 lda A2OSX.RANDOM16
sta SA.LOCAL+S.SOCKADDR.PORT eor A2osX.TIMER16+1
sta SA.REMOTE+S.SOCKADDR.PORT >STA.G SA.LOCAL+S.SOCKADDR.PORT
>STA.G SA.REMOTE+S.SOCKADDR.PORT
sta Identifier sta Identifier
lda A2OSX.RANDOM16+1 lda A2OSX.RANDOM16+1
sta SA.LOCAL+S.SOCKADDR.PORT+1 eor A2osX.TIMER16
sta SA.REMOTE+S.SOCKADDR.PORT+1 >STA.G SA.LOCAL+S.SOCKADDR.PORT+1
>STA.G SA.REMOTE+S.SOCKADDR.PORT+1
sta Identifier+1 sta Identifier+1
>PUSHBI S.IP.PROTOCOL.ICMP >PUSHBI S.IP.PROTOCOL.ICMP
@ -176,30 +196,25 @@ CS.RUN.OPENSKT ldx #3
sta hSocket sta hSocket
>PUSHW L.SA.LOCAL >PUSHEA.G SA.LOCAL
lda hSocket lda hSocket
>LIBCALL hLIBTCPIP,LIBTCPIP.Bind >LIBCALL hLIBTCPIP,LIBTCPIP.Bind
bcs .9 bcs .9
>PUSHW L.SA.REMOTE >PUSHEA.G SA.REMOTE
lda hSocket lda hSocket
>LIBCALL hLIBTCPIP,LIBTCPIP.Connect >LIBCALL hLIBTCPIP,LIBTCPIP.Connect
bcc CS.RUN.SEND bcc CS.RUN.SEND.ECHO
.9 >LDYA L.MSG.SKTKO .9 >LDYA L.MSG.SKTKO
>SYSCALL puts >SYSCALL puts
lda #E.SYN lda #E.SYN
sec sec
rts rts
CS.RUN.SEND ldy #ICMP.RequestLen-1
.1 lda ICMP.Request,y
sta (pData),y
dey
bpl .1
CS.RUN.SEND.ECHO CS.RUN.SEND.ECHO
>SLEEP
lda Identifier lda Identifier
>STA.G Request-S.IP+S.ICMP.IDENTIFIER+1 >STA.G Request-S.IP+S.ICMP.IDENTIFIER+1
@ -288,8 +303,11 @@ CS.DOEVENT lda (pEvent)
*-------------------------------------- *--------------------------------------
CS.Print.UNREACH CS.Print.UNREACH
ldx #3 ldx #3
ldy #SA.REMOTE+S.SOCKADDR.ADDR+3
.1 >PUSHB SA.REMOTE+S.SOCKADDR.ADDR,x .1 lda (pData),y
>PUSHA
dey
dex dex
bpl .1 bpl .1
@ -367,16 +385,6 @@ 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
*-------------------------------------- *--------------------------------------
SA.LOCAL .DA #AF.INET S.SOCKADDR.AF
.BS 1
.BS 4 S.SOCKADDR.ADDR
.BS 2 S.SOCKADDR.PORT
*--------------------------------------
SA.REMOTE .DA #AF.INET S.SOCKADDR.AF
.BS 1
.BS 4 S.SOCKADDR.ADDR
.BS 2
*--------------------------------------
ICMP.Request .DA #S.ICMP.TYPE.ECHOREQ ICMP.Request .DA #S.ICMP.TYPE.ECHOREQ
.DA #0 CODE .DA #0 CODE
.DA 0 CHECKSUM .DA 0 CHECKSUM
@ -385,13 +393,25 @@ ICMP.Request .DA #S.ICMP.TYPE.ECHOREQ
.AS "ABCDEFGHIJKLMNOP" .AS "ABCDEFGHIJKLMNOP"
.AS "QRSTUVWXYZ012345" .AS "QRSTUVWXYZ012345"
ICMP.RequestLen .EQ *-ICMP.Request ICMP.RequestLen .EQ *-ICMP.Request
*--------------------------------------
.DA #AF.INET S.SOCKADDR.AF
.BS 1
.BS 4 S.SOCKADDR.ADDR
.BS 2 S.SOCKADDR.PORT
*--------------------------------------
.DA #AF.INET S.SOCKADDR.AF
.BS 1
.BS 4 S.SOCKADDR.ADDR
.BS 2
DATA.Len .EQ *-ICMP.Request
*-------------------------------------- *--------------------------------------
.DUMMY .DUMMY
.OR 0 .OR 0
DS.START DS.START
Request .BS ICMP.RequestLen Request .BS ICMP.RequestLen
DS.END SA.LOCAL .BS S.SOCKADDR
.ED SA.REMOTE .BS S.SOCKADDR
DS.END .ED
*-------------------------------------- *--------------------------------------
MAN MAN
SAVE USR/SRC/BIN/PING.S SAVE USR/SRC/BIN/PING.S

View File

@ -19,18 +19,22 @@ FRM.GetTargetSKT.TCPUDP
FRM.GetTargetSKT.RAW FRM.GetTargetSKT.RAW
ldy #S.IP.SRC+3 ldy #S.IP.SRC+3
ldx #3 ldx #3
.1 lda (ZPFrameInPtr),y .1 lda (ZPFrameInPtr),y
sta SKT.REM.ADDR+S.SOCKADDR.ADDR,x sta SKT.REM.ADDR+S.SOCKADDR.ADDR,x
dey dey
dex dex
bpl .1 bpl .1
ldy #S.IP.DST+3 ldy #S.IP.DST+3
ldx #3 ldx #3
.2 lda (ZPFrameInPtr),y .2 lda (ZPFrameInPtr),y
sta SKT.LOC.ADDR+S.SOCKADDR.ADDR,x sta SKT.LOC.ADDR+S.SOCKADDR.ADDR,x
dey dey
dex dex
bpl .2 bpl .2
rts rts
*-------------------------------------- *--------------------------------------
* FRM.NewIP * FRM.NewIP

View File

@ -41,12 +41,13 @@ ICMP.IN.ECHOREQ ldy #S.IP.DST+3
ICMP.IN.EXIT jmp FRM.DiscardIn ICMP.IN.EXIT jmp FRM.DiscardIn
*-------------------------------------- *--------------------------------------
ICMP.IN.ECHOREP jsr FRM.GetTargetSKT.RAW ICMP.IN.ECHOREP jsr FRM.GetTargetSKT.RAW
ldy #S.ICMP.IDENTIFIER ldy #S.ICMP.IDENTIFIER
lda (ZPFrameInPtr),y lda (ZPFrameInPtr),y
sta SKT.LOC.ADDR+S.SOCKADDR.PORT+1 sta SKT.REM.ADDR+S.SOCKADDR.PORT+1
iny iny
lda (ZPFrameInPtr),y lda (ZPFrameInPtr),y
sta SKT.LOC.ADDR+S.SOCKADDR.PORT sta SKT.REM.ADDR+S.SOCKADDR.PORT
jsr SKT.FindMatchingLocRem jsr SKT.FindMatchingLocRem
bcs ICMP.IN.EXIT bcs ICMP.IN.EXIT

View File

@ -1235,12 +1235,14 @@ SKT.FindMatchingLocRem
lda (ZPPtrSKT),y lda (ZPPtrSKT),y
bne .44 bne .44
.43 ldy #S.SOCKET.REM.PORT Frame is Broadcast, or listening is 0.0.0.0 check port only .43 ldy #S.SOCKET.REM.PORT Frame is Broadcast, or listening is 0.0.0.0 check port only
.42 lda (ZPPtrSKT),y .42 lda (ZPPtrSKT),y
.44 cmp SKT.REM.ADDR+S.SOCKADDR.ADDR-S.SOCKET.REM.ADDR,y .44 cmp SKT.REM.ADDR+S.SOCKADDR.ADDR-S.SOCKET.REM.ADDR,y
bne .8 wrong remote host, exit.... bne .8 wrong remote host, exit....
iny iny
cpy #S.SOCKET.REM.PORT+2 cpy #S.SOCKET.REM.PORT+2
bne .42 bne .42
@ -1253,7 +1255,7 @@ SKT.FindMatchingLocRem
cpx #K.SKTTABLE.SIZE cpx #K.SKTTABLE.SIZE
bne .1 bne .1
.9 sec * sec
rts rts
*-------------------------------------- *--------------------------------------
SKT.AddToQueueA pha SKT.AddToQueueA pha

View File

@ -243,7 +243,7 @@ MSG.INCOMING .AZ "TELNETD:Incoming Connection [SKT=%h] From : %d.%d.%d.%d\r\n"
MSG.EXECERR .AZ "TELNETD:ExecL failed $%h." MSG.EXECERR .AZ "TELNETD:ExecL failed $%h."
*-------------------------------------- *--------------------------------------
NOD.Template .AZ "/dev/tty%h" NOD.Template .AZ "/dev/tty%h"
CMD.Template .AZ "${ROOT}SBIN/GETTY -E %s ${ROOT}SBIN/LOGIN" CMD.Template .AZ "${ROOT}sbin/getty -E %s ${ROOT}sbin/login"
*-------------------------------------- *--------------------------------------
SA.LOCAL .DA #AF.INET S.SOCKADDR.AF SA.LOCAL .DA #AF.INET S.SOCKADDR.AF
.BS 1 .BS 1

View File

@ -971,9 +971,9 @@ EvtMgrInit >LDYAI MSG.EVT
>SYSCALL2 puts >SYSCALL2 puts
stz CORE.EvtCount stz CORE.EvtCount
lda #$A5 lda #$A5
sta A2osX.TIMER16 sta A2osX.RANDOM16
lda #$9B lda #$9B
sta A2osX.TIMER16+1 sta A2osX.RANDOM16+1
lda /Evt.Table lda /Evt.Table
sta pEvent+1 sta pEvent+1

View File

@ -404,9 +404,9 @@ PrintF.ESC jmp (.1,x)
*-------------------------------------- *--------------------------------------
PrintFTBL1 .AS "bdDuefhHiILsS" PrintFTBL1 .AS "bdDuefhHiILsS"
PrintFTBL1.Cnt .EQ *-PrintFTBL1 PrintFTBL1.Cnt .EQ *-PrintFTBL1
PrintFTBL2 .AS "befnrtv\%" PrintFTBL2 .AS "abefnrtv\%"
PrintFTBL2.Cnt .EQ *-PrintFTBL2 PrintFTBL2.Cnt .EQ *-PrintFTBL2
PrintFTBL2.OUT .HS 08.1B.0C.0A.0D.09.0B \b\e\f\n\r\t\v PrintFTBL2.OUT .HS 07.08.1B.0C.0A.0D.09.0B \a\b\e\f\n\r\t\v
.DA #'\' \\ .DA #'\' \\
.DA #'%' \% .DA #'%' \%
*-------------------------------------- *--------------------------------------

View File

@ -180,14 +180,15 @@ DRV.TERM.READ jsr DRV.TERM.GetIOCTLBufCntDCB
lda OPENAPPLE lda OPENAPPLE
bpl .1 bpl .1
lda KBD
bmi .6 Open apple key, not for us...
jsr DRV.TERM.Title.ON jsr DRV.TERM.Title.ON
bra .6
bra .6 Open apple key, not for us...
.1 jsr DRV.TERM.Title.OFF .1 jsr DRV.TERM.Title.OFF
lda KBD lda KBD
sta A2osX.RANDOM16
bpl .6 bpl .6
sta KBDSTROBE sta KBDSTROBE

View File

@ -149,7 +149,8 @@ SetCharAtCurPos pha
cpy #80 cpy #80
bcs SetCharAtYX.8 bcs SetCharAtYX.8
*-------------------------------------- *--------------------------------------
SetCharAtYX cmp #$40 SetCharAtYX ror A2osX.RANDOM16+1
cmp #$40
bcc .1 bcc .1
cmp #$60 cmp #$60
bcs .1 bcs .1