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"
hLIBTCPIP .BS 1
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.DGRAM .AZ "DGRAM "
MSG1.T.SEQPKT .AZ "SEQPKT"

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -404,9 +404,9 @@ PrintF.ESC jmp (.1,x)
*--------------------------------------
PrintFTBL1 .AS "bdDuefhHiILsS"
PrintFTBL1.Cnt .EQ *-PrintFTBL1
PrintFTBL2 .AS "befnrtv\%"
PrintFTBL2 .AS "abefnrtv\%"
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 #'%' \%
*--------------------------------------

View File

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

View File

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