mirror of
https://github.com/A2osX/A2osX.git
synced 2024-08-14 13:29:02 +00:00
Kernel version 0.9 : TCPIP migration, fixed timing issues in DHCPCLNT, Broadcast not cleared properly....and working on TCP....
This commit is contained in:
parent
9c457ceed4
commit
d736762046
BIN
A2OSX.BOOT.po
BIN
A2OSX.BOOT.po
Binary file not shown.
BIN
A2OSX.DEV.po
BIN
A2OSX.DEV.po
Binary file not shown.
BIN
A2OSX.SRC.po
BIN
A2OSX.SRC.po
Binary file not shown.
@ -14,7 +14,7 @@ AUTO 6
|
|||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
ZPIPCfgPtr .EQ ZPBIN
|
ZPIPCfgPtr .EQ ZPBIN
|
||||||
ZPDevPtr .EQ ZPBIN+2
|
ZPDevPtr .EQ ZPBIN+2
|
||||||
ZPDevInfoPtr .EQ ZPBIN+4
|
ZPDevStatPtr .EQ ZPBIN+4
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
* File Header (16 Bytes)
|
* File Header (16 Bytes)
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
@ -55,13 +55,17 @@ L.MSG2.IP .DA MSG2.IP
|
|||||||
L.MSG2.GW .DA MSG2.GW
|
L.MSG2.GW .DA MSG2.GW
|
||||||
L.MSG2.DNS .DA MSG2.DNS
|
L.MSG2.DNS .DA MSG2.DNS
|
||||||
L.MSG2.HOSTNAME .DA MSG2.HOSTNAME
|
L.MSG2.HOSTNAME .DA MSG2.HOSTNAME
|
||||||
|
L.DevName .DA DevName
|
||||||
.DA 0
|
.DA 0
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CS.INIT >LDYA L.LIBTCPIP
|
CS.INIT >LDYA L.LIBTCPIP
|
||||||
>SYSCALL LoadLibYA
|
>SYSCALL LoadLibYA
|
||||||
|
bcs .9
|
||||||
sta hLIBTCPIP
|
sta hLIBTCPIP
|
||||||
|
clc
|
||||||
>LDYA L.MSG0
|
.9 rts
|
||||||
|
*--------------------------------------
|
||||||
|
CS.RUN >LDYA L.MSG0
|
||||||
>SYSCALL CPrintFYA
|
>SYSCALL CPrintFYA
|
||||||
|
|
||||||
>LIBCALL hLIBTCPIP,LIBTCPIP.GET.IPCFG
|
>LIBCALL hLIBTCPIP,LIBTCPIP.GET.IPCFG
|
||||||
@ -69,44 +73,58 @@ CS.INIT >LDYA L.LIBTCPIP
|
|||||||
|
|
||||||
ldy #S.IPCFG.HDEV
|
ldy #S.IPCFG.HDEV
|
||||||
lda (ZPIPCfgPtr),y
|
lda (ZPIPCfgPtr),y
|
||||||
bne CS.INIT.DUMPDEV
|
bne CS.RUN.DUMPDEV
|
||||||
|
|
||||||
>LDYA L.MSG0.NL
|
>LDYA L.MSG0.NL
|
||||||
>SYSCALL CPrintFYA
|
>SYSCALL CPrintFYA
|
||||||
jmp CS.INIT.DONE
|
jmp CS.RUN.DONE
|
||||||
|
|
||||||
CS.INIT.DUMPDEV sta DevID
|
CS.RUN.DUMPDEV sta DevID
|
||||||
>SYSCALL GetDevByIDA
|
>SYSCALL GetDevByIDA
|
||||||
>STYA ZPDevPtr
|
>STYA ZPDevPtr
|
||||||
|
|
||||||
lda DevID
|
ldy #S.DEV.JMP
|
||||||
>SYSCALL GetDevInfoA
|
lda (ZPDevPtr),y
|
||||||
>STYA ZPDevInfoPtr
|
sta NetDevJmp+1
|
||||||
|
iny
|
||||||
|
lda (ZPDevPtr),y
|
||||||
|
sta NetDevJmp+2
|
||||||
|
|
||||||
|
ldx #DEVMGR.STATUS
|
||||||
|
jsr NetDevJmp
|
||||||
|
>STYA ZPDevStatPtr
|
||||||
|
|
||||||
>LDYA L.MSG0.L
|
>LDYA L.MSG0.L
|
||||||
>SYSCALL CPrintFYA
|
>SYSCALL CPrintFYA
|
||||||
|
|
||||||
ldy #S.DEVSTAT.NET.MAC+6
|
ldy #S.DEVSTAT.NET.MAC+5
|
||||||
.1 dey
|
|
||||||
>PUSHB (ZPDevInfoPtr),y
|
.1 >PUSHB (ZPDevStatPtr),y
|
||||||
cpy #S.DEVSTAT.NET.MAC
|
dey
|
||||||
|
cpy #S.DEVSTAT.NET.MAC-1
|
||||||
bne .1
|
bne .1
|
||||||
|
|
||||||
lda ZPDevPtr
|
ldy #S.DEV.F
|
||||||
clc
|
lda (ZPDevPtr),y
|
||||||
adc #S.DEV.NAME
|
and #S.DEV.F.LEN
|
||||||
tay
|
sta DevName
|
||||||
lda ZPDevPtr+1
|
tax
|
||||||
adc #0
|
|
||||||
>PUSHYA
|
.10 iny
|
||||||
|
lda (ZPDevPtr),y
|
||||||
|
sta DevName-S.DEV.NAME,y
|
||||||
|
dex
|
||||||
|
bne .10
|
||||||
|
|
||||||
|
>PUSHW L.DevName
|
||||||
|
|
||||||
>PUSHB DevID
|
>PUSHB DevID
|
||||||
|
|
||||||
>LDYA L.MSG1.DEV
|
>LDYA L.MSG1.DEV
|
||||||
>SYSCALL CPrintFYA
|
>SYSCALL CPrintFYA
|
||||||
|
|
||||||
ldy #S.DEVSTAT.FLAGS
|
ldy #S.DEVSTAT.NET.FLAGS
|
||||||
lda (ZPDevInfoPtr),y
|
lda (ZPDevStatPtr),y
|
||||||
and #S.DEVSTAT.NET.FLAGS.ARPOFFLOAD
|
and #S.DEVSTAT.NET.FLAGS.ARPOFFLOAD
|
||||||
beq .2
|
beq .2
|
||||||
lda #1
|
lda #1
|
||||||
@ -114,8 +132,8 @@ CS.INIT.DUMPDEV sta DevID
|
|||||||
>LDYA L.MSG1.DEV.ARP
|
>LDYA L.MSG1.DEV.ARP
|
||||||
>SYSCALL CPrintFYA
|
>SYSCALL CPrintFYA
|
||||||
|
|
||||||
ldy #S.DEVSTAT.FLAGS
|
ldy #S.DEVSTAT.NET.FLAGS
|
||||||
lda (ZPDevInfoPtr),y
|
lda (ZPDevStatPtr),y
|
||||||
and #S.DEVSTAT.NET.FLAGS.IPOFFLOAD
|
and #S.DEVSTAT.NET.FLAGS.IPOFFLOAD
|
||||||
beq .3
|
beq .3
|
||||||
lda #1
|
lda #1
|
||||||
@ -124,15 +142,15 @@ CS.INIT.DUMPDEV sta DevID
|
|||||||
>SYSCALL CPrintFYA
|
>SYSCALL CPrintFYA
|
||||||
|
|
||||||
ldy #S.DEVSTAT.NET.STATUS
|
ldy #S.DEVSTAT.NET.STATUS
|
||||||
lda (ZPDevInfoPtr),y
|
lda (ZPDevStatPtr),y
|
||||||
and #S.DEVSTAT.NET.STATUS.OK
|
and #S.DEVSTAT.NET.STATUS.OK
|
||||||
bne CS.INIT.LINK
|
bne CS.RUN.LINK
|
||||||
>PUSHW L.MSG1.LINK.KO
|
>PUSHW L.MSG1.LINK.KO
|
||||||
>LDYA L.MSG1.LINK
|
>LDYA L.MSG1.LINK
|
||||||
>SYSCALL CPrintFYA
|
>SYSCALL CPrintFYA
|
||||||
bra CS.INIT.DUMPIP
|
bra CS.RUN.DUMPIP
|
||||||
|
|
||||||
CS.INIT.LINK >PUSHW L.MSG1.LINK.OK
|
CS.RUN.LINK >PUSHW L.MSG1.LINK.OK
|
||||||
>LDYA L.MSG1.LINK
|
>LDYA L.MSG1.LINK
|
||||||
>SYSCALL CPrintFYA
|
>SYSCALL CPrintFYA
|
||||||
|
|
||||||
@ -140,7 +158,7 @@ CS.INIT.LINK >PUSHW L.MSG1.LINK.OK
|
|||||||
>SYSCALL CPrintFYA
|
>SYSCALL CPrintFYA
|
||||||
|
|
||||||
ldy #S.DEVSTAT.NET.STATUS
|
ldy #S.DEVSTAT.NET.STATUS
|
||||||
lda (ZPDevInfoPtr),y
|
lda (ZPDevStatPtr),y
|
||||||
and #$0F
|
and #$0F
|
||||||
tax
|
tax
|
||||||
|
|
||||||
@ -152,7 +170,7 @@ CS.INIT.LINK >PUSHW L.MSG1.LINK.OK
|
|||||||
bne .4
|
bne .4
|
||||||
|
|
||||||
ldy #S.DEVSTAT.NET.STATUS
|
ldy #S.DEVSTAT.NET.STATUS
|
||||||
lda (ZPDevInfoPtr),y
|
lda (ZPDevStatPtr),y
|
||||||
and #S.DEVSTAT.NET.STATUS.FD
|
and #S.DEVSTAT.NET.STATUS.FD
|
||||||
bne .5
|
bne .5
|
||||||
>LDYA L.MSG1.DPLX.HD
|
>LDYA L.MSG1.DPLX.HD
|
||||||
@ -160,7 +178,7 @@ CS.INIT.LINK >PUSHW L.MSG1.LINK.OK
|
|||||||
.5 >LDYA L.MSG1.DPLX.FD
|
.5 >LDYA L.MSG1.DPLX.FD
|
||||||
.6 >SYSCALL CPrintFYA
|
.6 >SYSCALL CPrintFYA
|
||||||
|
|
||||||
CS.INIT.DUMPIP >LDYA L.MSG2
|
CS.RUN.DUMPIP >LDYA L.MSG2
|
||||||
>SYSCALL CPrintFYA
|
>SYSCALL CPrintFYA
|
||||||
lda (ZPIPCfgPtr)
|
lda (ZPIPCfgPtr)
|
||||||
and #S.IPCFG.STATUS.OK
|
and #S.IPCFG.STATUS.OK
|
||||||
@ -226,19 +244,22 @@ CS.INIT.DUMPIP >LDYA L.MSG2
|
|||||||
>LDYA L.MSG2.HOSTNAME
|
>LDYA L.MSG2.HOSTNAME
|
||||||
>SYSCALL CPrintFYA
|
>SYSCALL CPrintFYA
|
||||||
|
|
||||||
CS.INIT.DONE lda #0 tell TSKMGR that all done ok, but
|
CS.RUN.DONE lda #0 tell TSKMGR that all done ok, but
|
||||||
sec we do not want to stay in memory
|
sec we do not want to stay in memory
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CS.RUN
|
CS.DOEVENT sec
|
||||||
CS.DOEVENT clc
|
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CS.QUIT lda hLIBTCPIP
|
CS.QUIT lda hLIBTCPIP
|
||||||
|
beq .8
|
||||||
>SYSCALL FreeMemA
|
>SYSCALL FreeMemA
|
||||||
clc
|
|
||||||
|
.8 clc
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
NetDevJmp jmp *
|
||||||
|
*--------------------------------------
|
||||||
CS.END
|
CS.END
|
||||||
LIBTCPIP >PSTR "libtcpip.o"
|
LIBTCPIP >PSTR "libtcpip.o"
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
@ -266,6 +287,7 @@ MSG2.DNS >CSTR " DNS : %d.%d.%d.%d,%d.%d.%d.%d\n"
|
|||||||
MSG2.HOSTNAME >CSTR " Hostname : %S.%S\n"
|
MSG2.HOSTNAME >CSTR " Hostname : %S.%S\n"
|
||||||
hLIBTCPIP .BS 1
|
hLIBTCPIP .BS 1
|
||||||
DevID .BS 1
|
DevID .BS 1
|
||||||
|
DevName .BS 5
|
||||||
MAN
|
MAN
|
||||||
SAVE BIN/IPCONFIG.S
|
SAVE BIN/IPCONFIG.S
|
||||||
ASM
|
ASM
|
||||||
|
@ -56,13 +56,28 @@ CS.INIT ldy #MEM.COUNT Skip SLOT0
|
|||||||
ora #S.PS.F.EVENT Now accept events
|
ora #S.PS.F.EVENT Now accept events
|
||||||
sta (pPs)
|
sta (pPs)
|
||||||
clc
|
clc
|
||||||
.9 rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CS.RUN ldy #bCANCEL
|
CS.RUN >SYSCALL GetC
|
||||||
lda (pData),y
|
bcs .13
|
||||||
bne .9
|
|
||||||
|
cmp #3 Ctrl-C ?
|
||||||
|
beq .9
|
||||||
|
|
||||||
|
cmp #19 Ctrl-S ?
|
||||||
|
bne .12
|
||||||
|
|
||||||
ldy #bSTOP
|
ldy #bSTOP
|
||||||
|
lda (pData),y
|
||||||
|
eor #$ff
|
||||||
|
sta (pData),y
|
||||||
|
bra .13
|
||||||
|
|
||||||
|
.12 ldy #bSTOP
|
||||||
|
lda #0
|
||||||
|
sta (pData),y
|
||||||
|
|
||||||
|
.13 ldy #bSTOP
|
||||||
lda (pData),y
|
lda (pData),y
|
||||||
bne .8
|
bne .8
|
||||||
|
|
||||||
@ -187,11 +202,14 @@ CS.RUN.PRINTMEM ldy #S.MEM.LEN
|
|||||||
>LDYA L.MSG1
|
>LDYA L.MSG1
|
||||||
>SYSCALL CPrintFYA
|
>SYSCALL CPrintFYA
|
||||||
|
|
||||||
|
lda (ZPPTR1) Free ? assume raw data...
|
||||||
|
bpl .10
|
||||||
|
|
||||||
ldy #S.MEM.BIN
|
ldy #S.MEM.BIN
|
||||||
lda (ZPPTR1),y
|
lda (ZPPTR1),y
|
||||||
bne .7
|
bne .7
|
||||||
****** DATA
|
****** DATA
|
||||||
ldy #S.MEM.PTR
|
.10 ldy #S.MEM.PTR
|
||||||
lda (ZPPTR1),y
|
lda (ZPPTR1),y
|
||||||
sta ZPPTR2
|
sta ZPPTR2
|
||||||
iny
|
iny
|
||||||
@ -246,47 +264,7 @@ CS.RUN.PRINTMEM ldy #S.MEM.LEN
|
|||||||
|
|
||||||
.9 rts
|
.9 rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CS.DOEVENT ldy #S.EVT.hDEV is Event from active IN device?
|
CS.DOEVENT sec
|
||||||
lda (pEvent),y
|
|
||||||
ldy #S.PS.hStdIn
|
|
||||||
cmp (pPs),y
|
|
||||||
bne .9
|
|
||||||
|
|
||||||
lda (pEvent)
|
|
||||||
and #S.EVT.F.KEY is it a KEY event?
|
|
||||||
beq .9
|
|
||||||
|
|
||||||
ldy #S.EVT.DATAHI is it an O or SAPPLE key ?
|
|
||||||
lda (pEvent),y
|
|
||||||
bne .9
|
|
||||||
|
|
||||||
ldy #S.EVT.DATALO
|
|
||||||
lda (pEvent),y
|
|
||||||
cmp #$03 Ctrl-C
|
|
||||||
bne .1
|
|
||||||
|
|
||||||
lda #$FF
|
|
||||||
ldy #bCANCEL
|
|
||||||
sta (pData),y
|
|
||||||
bra .8
|
|
||||||
|
|
||||||
.1 cmp #$13 Ctrl-S
|
|
||||||
bne .2
|
|
||||||
|
|
||||||
ldy #bSTOP
|
|
||||||
lda (pData),y
|
|
||||||
eor #$FF
|
|
||||||
sta (pData),y
|
|
||||||
bra .8
|
|
||||||
|
|
||||||
.2 ldy #bSTOP
|
|
||||||
lda #0
|
|
||||||
sta (pData),y
|
|
||||||
|
|
||||||
.8 clc
|
|
||||||
rts
|
|
||||||
|
|
||||||
.9 sec
|
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CS.QUIT clc
|
CS.QUIT clc
|
||||||
@ -311,7 +289,6 @@ LINE.COUNT .BS 1
|
|||||||
MEM.COUNT .BS 1
|
MEM.COUNT .BS 1
|
||||||
USED.COUNT .BS 1
|
USED.COUNT .BS 1
|
||||||
bSTOP .BS 1
|
bSTOP .BS 1
|
||||||
bCANCEL .BS 1
|
|
||||||
DS.END
|
DS.END
|
||||||
.ED
|
.ED
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
@ -56,9 +56,13 @@ L.MSG1.S .DA MSG1.S.0
|
|||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CS.INIT >LDYA L.LIBTCPIP
|
CS.INIT >LDYA L.LIBTCPIP
|
||||||
>SYSCALL LoadLibYA
|
>SYSCALL LoadLibYA
|
||||||
sta hLIBTCPIP
|
bcs .9
|
||||||
|
|
||||||
>LDYA L.MSG0
|
sta hLIBTCPIP
|
||||||
|
clc
|
||||||
|
.9 rts
|
||||||
|
*--------------------------------------
|
||||||
|
CS.RUN >LDYA L.MSG0
|
||||||
>SYSCALL CPrintFYA
|
>SYSCALL CPrintFYA
|
||||||
|
|
||||||
>LIBCALL hLIBTCPIP,LIBTCPIP.SKT.GETTABLE
|
>LIBCALL hLIBTCPIP,LIBTCPIP.SKT.GETTABLE
|
||||||
@ -107,17 +111,18 @@ CS.INIT >LDYA L.LIBTCPIP
|
|||||||
dec SocketCount
|
dec SocketCount
|
||||||
bne .1
|
bne .1
|
||||||
|
|
||||||
CS.INIT.DONE lda #0 tell TSKMGR that all done ok, but
|
lda #0 tell TSKMGR that all done ok, but
|
||||||
sec we do not want to stay in memory
|
sec we do not want to stay in memory
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CS.RUN
|
CS.DOEVENT sec
|
||||||
CS.DOEVENT clc
|
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CS.QUIT lda hLIBTCPIP
|
CS.QUIT lda hLIBTCPIP
|
||||||
|
beq .8
|
||||||
|
|
||||||
>SYSCALL FreeMemA
|
>SYSCALL FreeMemA
|
||||||
clc
|
.8 clc
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CS.END
|
CS.END
|
||||||
|
@ -260,7 +260,7 @@ READBLOCK.RxOK and /PP.RxEvent.Brdcast
|
|||||||
bne .1
|
bne .1
|
||||||
|
|
||||||
.8 lda #$ff hMem
|
.8 lda #$ff hMem
|
||||||
ldy #$ff Flags
|
ldy #$00 Flags
|
||||||
clc
|
clc
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
@ -386,7 +386,7 @@ DEVSTAT .DA #S.DEV.S.BLOCK+S.DEV.S.WRITE+S.DEV.S.READ
|
|||||||
.BS 1 Subtype
|
.BS 1 Subtype
|
||||||
.BS 2 Version
|
.BS 2 Version
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
FLAGS .DA 0
|
FLAGS .DA #0
|
||||||
LINK.STATUS .BS 1 OK/DUPLEX/SPEED
|
LINK.STATUS .BS 1 OK/DUPLEX/SPEED
|
||||||
MAC .BS 6
|
MAC .BS 6
|
||||||
MAN
|
MAN
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
PR#3
|
PR#3
|
||||||
PREFIX /A2OSX.SRC
|
PREFIX /A2OSX.SRC
|
||||||
NEW
|
LOMEM $A00
|
||||||
INC 1
|
INC 1
|
||||||
AUTO 6
|
AUTO 6
|
||||||
.LIST OFF
|
.LIST OFF
|
||||||
@ -75,7 +75,7 @@ TCP.IN ldy #S.IP.SRC+3
|
|||||||
cpy #S.SOCKET.DST.PORT+2
|
cpy #S.SOCKET.DST.PORT+2
|
||||||
bne .6
|
bne .6
|
||||||
|
|
||||||
jmp TCP.IN.ESTABLISHED
|
jmp TCP.IN.REGULAR
|
||||||
|
|
||||||
.7 lda ZPPtrSKT
|
.7 lda ZPPtrSKT
|
||||||
clc
|
clc
|
||||||
@ -101,6 +101,7 @@ TCP.IN.LISTEN.NEW
|
|||||||
ldx #3
|
ldx #3
|
||||||
|
|
||||||
sec
|
sec
|
||||||
|
|
||||||
.1 lda (ZPFrameBase1),y
|
.1 lda (ZPFrameBase1),y
|
||||||
adc #0
|
adc #0
|
||||||
sta TmpSocket+S.SOCKET.SQ.ACKNUM,x
|
sta TmpSocket+S.SOCKET.SQ.ACKNUM,x
|
||||||
@ -143,14 +144,21 @@ TCP.IN.LISTEN.NEW
|
|||||||
|
|
||||||
jmp TCP.SendSYNACK
|
jmp TCP.SendSYNACK
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
TCP.IN.ESTABLISHED
|
TCP.IN.REGULAR stx hSocket
|
||||||
stx hSocket
|
|
||||||
ldy #S.SOCKET.STATUS
|
ldy #S.SOCKET.STATUS
|
||||||
lda (ZPPtrSKT),y
|
lda (ZPPtrSKT),y
|
||||||
cmp #S.SOCKET.STATUS.SYNRCVD Waiting for ACK to establish?
|
asl
|
||||||
bne .1
|
tax
|
||||||
|
jmp (L.TCP.IN.JMP,x)
|
||||||
ldy #S.TCP.OPTIONS yes, only accept ACK packet
|
*--------------------------------------
|
||||||
|
TCP.IN.JMP.CLOSED
|
||||||
|
TCP.IN.JMP.LISTEN
|
||||||
|
TCP.IN.JMP.SYNSENT
|
||||||
|
clc
|
||||||
|
rts
|
||||||
|
*--------------------------------------
|
||||||
|
TCP.IN.JMP.SYNRCVD
|
||||||
|
ldy #S.TCP.OPTIONS only accept ACK packet
|
||||||
lda (ZPFrameBase1),y
|
lda (ZPFrameBase1),y
|
||||||
cmp #S.TCP.OPTIONS.ACK
|
cmp #S.TCP.OPTIONS.ACK
|
||||||
bne .8
|
bne .8
|
||||||
@ -206,18 +214,100 @@ TCP.IN.ESTABLISHED
|
|||||||
|
|
||||||
.8 clc
|
.8 clc
|
||||||
rts
|
rts
|
||||||
|
*--------------------------------------
|
||||||
|
TCP.IN.JMP.ESTBLSH
|
||||||
|
ldy #S.TCP.OPTIONS
|
||||||
|
lda (ZPFrameBase1),y
|
||||||
|
cmp #S.TCP.OPTIONS.ACK
|
||||||
|
bne .3
|
||||||
|
|
||||||
.1 cmp #S.SOCKET.STATUS.ESTBLSH
|
jsr TCP.UpdateAck
|
||||||
bne .99
|
|
||||||
|
|
||||||
|
.3 lda ZPFrameBase1
|
||||||
|
clc
|
||||||
|
adc #S.TCP
|
||||||
|
sta ZPDataPtr
|
||||||
|
lda ZPFrameBase1+1
|
||||||
|
adc /S.TCP
|
||||||
|
sta ZPDataPtr+1
|
||||||
|
|
||||||
|
ldy #S.TCP.DATAOFFSET
|
||||||
|
lda (ZPFrameBase1),y
|
||||||
|
lsr
|
||||||
|
lsr
|
||||||
|
clc
|
||||||
|
adc ZPDataPtr
|
||||||
|
sta ZPDataPtr
|
||||||
|
lda ZPDataPtr+1
|
||||||
|
adc ZPDataPtr+1
|
||||||
|
sta ZPDataPtr+1
|
||||||
|
|
||||||
|
lda ZPDataPtr
|
||||||
|
sec
|
||||||
|
sbc ZPFrameBase1
|
||||||
|
sta ZPDataLen
|
||||||
|
lda ZPDataPtr+1
|
||||||
|
sbc ZPFrameBase1+1
|
||||||
|
sta ZPDataLen+1
|
||||||
|
|
||||||
bra *
|
ldy #S.SOCKET.SQ.ACKNUM+3
|
||||||
.99 clc
|
lda (ZPPtrSKT),y
|
||||||
|
clc
|
||||||
|
adc ZPDataLen
|
||||||
|
sta (ZPPtrSKT),y
|
||||||
|
dey
|
||||||
|
lda (ZPPtrSKT),y
|
||||||
|
adc ZPDataLen+1
|
||||||
|
sta (ZPPtrSKT),y
|
||||||
|
dey
|
||||||
|
lda (ZPPtrSKT),y
|
||||||
|
adc #0
|
||||||
|
sta (ZPPtrSKT),y
|
||||||
|
dey
|
||||||
|
lda (ZPPtrSKT),y
|
||||||
|
adc #0
|
||||||
|
sta (ZPPtrSKT),y
|
||||||
|
|
||||||
|
jsr TCP.SendACK
|
||||||
|
|
||||||
|
clc
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
TCP.SendSYNACK ldy #S.SOCKET.SRC.ADDR+3
|
TCP.IN.JMP.CLWAIT
|
||||||
|
TCP.IN.JMP.LASTACK
|
||||||
|
TCP.IN.JMP.FINWT1
|
||||||
|
TCP.IN.JMP.FINWT2
|
||||||
|
TCP.IN.JMP.CLOSING
|
||||||
|
TCP.IN.JMP.TIMEWT
|
||||||
|
clc
|
||||||
|
rts
|
||||||
|
*--------------------------------------
|
||||||
|
TCP.UpdateAck ldy #S.TCP.ACK.NUMBER
|
||||||
|
ldx #4
|
||||||
|
|
||||||
|
.1 lda (ZPFrameBase1),y
|
||||||
|
pha
|
||||||
|
iny
|
||||||
|
dex
|
||||||
|
bne .1
|
||||||
|
|
||||||
|
ldy #S.SOCKET.SQ.ACKNUM+3
|
||||||
|
ldx #4
|
||||||
|
|
||||||
|
.2 pla
|
||||||
|
sta (ZPPtrSKT),y
|
||||||
|
dey
|
||||||
|
dex
|
||||||
|
bne .2
|
||||||
|
rts
|
||||||
|
*--------------------------------------
|
||||||
|
TCP.SendACK lda #S.TCP.OPTIONS.ACK
|
||||||
|
bra TCP.SendMSG
|
||||||
|
TCP.SendSYNACK lda #S.TCP.OPTIONS.SYN+S.TCP.OPTIONS.ACK
|
||||||
|
|
||||||
|
TCP.SendMSG sta TCP.MSG+S.TCP.OPTIONS
|
||||||
|
|
||||||
|
ldy #S.SOCKET.SRC.ADDR+3
|
||||||
ldx #3
|
ldx #3
|
||||||
.1 lda (ZPPtrSKT),y
|
.1 lda (ZPPtrSKT),y
|
||||||
sta TCP.MSG+S.IP.SRC,x
|
sta TCP.MSG+S.IP.SRC,x
|
||||||
@ -255,9 +345,6 @@ TCP.SendSYNACK ldy #S.SOCKET.SRC.ADDR+3
|
|||||||
dex
|
dex
|
||||||
bpl .3
|
bpl .3
|
||||||
|
|
||||||
lda #S.TCP.OPTIONS.SYN+S.TCP.OPTIONS.ACK
|
|
||||||
sta TCP.MSG+S.TCP.OPTIONS
|
|
||||||
|
|
||||||
>PUSHW L.TCP.MSG
|
>PUSHW L.TCP.MSG
|
||||||
jsr SEND.TCP.FRAME
|
jsr SEND.TCP.FRAME
|
||||||
|
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
PR#3
|
PR#3
|
||||||
PREFIX /A2OSX.SRC
|
PREFIX /A2OSX.SRC
|
||||||
NEW
|
LOMEM $A00
|
||||||
INC 1
|
INC 1
|
||||||
AUTO 6
|
AUTO 6
|
||||||
.LIST OFF
|
.LIST OFF
|
||||||
@ -97,6 +97,17 @@ L.DNS.CACHE .DA DNS.CACHE
|
|||||||
L.SKT.TABLE .DA SKT.TABLE
|
L.SKT.TABLE .DA SKT.TABLE
|
||||||
L.TmpSocket .DA TmpSocket
|
L.TmpSocket .DA TmpSocket
|
||||||
L.TCP.MSG .DA TCP.MSG
|
L.TCP.MSG .DA TCP.MSG
|
||||||
|
L.TCP.IN.JMP .DA TCP.IN.JMP.CLOSED
|
||||||
|
.DA TCP.IN.JMP.LISTEN
|
||||||
|
.DA TCP.IN.JMP.SYNSENT
|
||||||
|
.DA TCP.IN.JMP.SYNRCVD
|
||||||
|
.DA TCP.IN.JMP.ESTBLSH
|
||||||
|
.DA TCP.IN.JMP.CLWAIT
|
||||||
|
.DA TCP.IN.JMP.LASTACK
|
||||||
|
.DA TCP.IN.JMP.FINWT1
|
||||||
|
.DA TCP.IN.JMP.FINWT2
|
||||||
|
.DA TCP.IN.JMP.CLOSING
|
||||||
|
.DA TCP.IN.JMP.TIMEWT
|
||||||
.DA 0
|
.DA 0
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
LIB.LOAD lda bFirstLoad
|
LIB.LOAD lda bFirstLoad
|
||||||
|
@ -151,15 +151,15 @@ note : '$VAR' does NOT expand Variable
|
|||||||
| ARP | Working | dump ARP cache, setup a static ARP entry | 0.8 |
|
| ARP | Working | dump ARP cache, setup a static ARP entry | 0.8 |
|
||||||
| PING | Working | | 0.8 |
|
| PING | Working | | 0.8 |
|
||||||
| DNSINFO | Working | dump DNS cache, setup a static DNS entry | | 0.8 |
|
| DNSINFO | Working | dump DNS cache, setup a static DNS entry | | 0.8 |
|
||||||
| IPCONFIG | Working | renamed from NETINFO | 0.8 |
|
| IPCONFIG | Working | renamed from NETINFO | 0.9 |
|
||||||
| NETSTAT | Working | | 0.8 |
|
| NETSTAT | Working | | 0.9 |
|
||||||
|
|
||||||
## BIN,External DEV Shell commands:
|
## BIN,External DEV Shell commands:
|
||||||
| Name | Status | Comment | K.Ver |
|
| Name | Status | Comment | K.Ver |
|
||||||
| ---- | ------ | ------- | ----- |
|
| ---- | ------ | ------- | ----- |
|
||||||
| ASM | In Progress | S-C MASM based multi CPU assembler | |
|
| ASM | In Progress | S-C MASM based multi CPU assembler | |
|
||||||
| DEVDUMP | | | 0.8 |
|
| DEVDUMP | | | 0.8 |
|
||||||
| MEMDUMP | Working | | 0.8 |
|
| MEMDUMP | Working | | 0.9 |
|
||||||
| RPCDUMP | Working | tool based on UDP socket API, renamed from RPCINFO | 0.8 |
|
| RPCDUMP | Working | tool based on UDP socket API, renamed from RPCINFO | 0.8 |
|
||||||
|
|
||||||
## Misc
|
## Misc
|
||||||
|
@ -414,9 +414,6 @@ Wait.TimeOut sec
|
|||||||
ldy #TimeOut
|
ldy #TimeOut
|
||||||
lda (pData),y
|
lda (pData),y
|
||||||
beq .9
|
beq .9
|
||||||
ldy #bCTRLC
|
|
||||||
lda (pData),y
|
|
||||||
bmi .9
|
|
||||||
clc
|
clc
|
||||||
.9 rts
|
.9 rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
@ -480,7 +477,6 @@ DHCP.REQ.LEN .EQ *-DHCP.REQ
|
|||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
DS.START
|
DS.START
|
||||||
TimeOut .BS 1
|
TimeOut .BS 1
|
||||||
bCTRLC .BS 1
|
|
||||||
hSocket .BS 1
|
hSocket .BS 1
|
||||||
hFrame .BS 1
|
hFrame .BS 1
|
||||||
DS.END
|
DS.END
|
||||||
|
@ -70,6 +70,11 @@ CS.RUN jsr Init.Timeout
|
|||||||
>SYSCALL Sleep
|
>SYSCALL Sleep
|
||||||
jsr Wait.Timeout
|
jsr Wait.Timeout
|
||||||
bcc .1
|
bcc .1
|
||||||
|
>SYSCALL GetC
|
||||||
|
bcs .1
|
||||||
|
cmp #$03
|
||||||
|
bne .1
|
||||||
|
jmp CS.RUN.ABORT
|
||||||
|
|
||||||
.99 >LDYA L.MSG.TCPIPERR
|
.99 >LDYA L.MSG.TCPIPERR
|
||||||
>SYSCALL CPrintFYA
|
>SYSCALL CPrintFYA
|
||||||
@ -96,12 +101,12 @@ CS.RUN.INIT ldx #3
|
|||||||
>SYSCALL CPrintFYA
|
>SYSCALL CPrintFYA
|
||||||
|
|
||||||
.11 >SYSCALL Sleep
|
.11 >SYSCALL Sleep
|
||||||
ldy #bCTRLC
|
>SYSCALL GetC
|
||||||
lda (pData),y
|
bcs .12
|
||||||
bmi .99
|
cmp #03
|
||||||
bra .11
|
beq CS.RUN.ABORT
|
||||||
|
|
||||||
ldy #hSocket
|
.12 ldy #hSocket
|
||||||
lda (pData),y
|
lda (pData),y
|
||||||
|
|
||||||
>LIBCALL hLIBTCPIP,LIBTCPIP.SKT.ACCEPTA
|
>LIBCALL hLIBTCPIP,LIBTCPIP.SKT.ACCEPTA
|
||||||
@ -127,46 +132,13 @@ CS.RUN.INIT ldx #3
|
|||||||
sec
|
sec
|
||||||
rts
|
rts
|
||||||
|
|
||||||
.99 >LDYA L.MSG.ABORT
|
CS.RUN.ABORT >LDYA L.MSG.ABORT
|
||||||
>SYSCALL CPrintFYA
|
>SYSCALL CPrintFYA
|
||||||
lda #0
|
lda #0
|
||||||
sec
|
sec
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CS.DOEVENT lda (pEvent)
|
CS.DOEVENT sec
|
||||||
bpl .1 is it a TIMER event?
|
|
||||||
|
|
||||||
asl One second ?
|
|
||||||
bpl .9
|
|
||||||
|
|
||||||
ldy #TimeOut
|
|
||||||
lda (pData),y
|
|
||||||
beq .9
|
|
||||||
|
|
||||||
dec
|
|
||||||
sta (pData),y
|
|
||||||
sec do not discard TIMER event
|
|
||||||
rts
|
|
||||||
|
|
||||||
.1 bit #S.EVT.F.KEY is it a KEY event?
|
|
||||||
beq .9
|
|
||||||
|
|
||||||
ldy #S.EVT.DATAHI is it an O or SAPPLE key ?
|
|
||||||
lda (pEvent),y
|
|
||||||
bne .9
|
|
||||||
|
|
||||||
ldy #S.EVT.DATALO
|
|
||||||
lda (pEvent),y
|
|
||||||
cmp #$03 Ctrl-C
|
|
||||||
bne .9
|
|
||||||
|
|
||||||
lda #$FF
|
|
||||||
ldy #bCTRLC
|
|
||||||
sta (pData),y
|
|
||||||
clc
|
|
||||||
rts
|
|
||||||
|
|
||||||
.9 sec
|
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CS.QUIT ldy #hSocket
|
CS.QUIT ldy #hSocket
|
||||||
|
@ -151,8 +151,13 @@ CS.INIT.DEV >LDYA L.DEVNAME
|
|||||||
CS.RUN ldx #DEVMGR.READBLOCK
|
CS.RUN ldx #DEVMGR.READBLOCK
|
||||||
jsr NetDevJmp
|
jsr NetDevJmp
|
||||||
bcs .8
|
bcs .8
|
||||||
|
sta .1+1
|
||||||
|
|
||||||
>LIBCALL hLIBTCPIP,LIBTCPIP.RCVD.FRAMEA
|
>LIBCALL hLIBTCPIP,LIBTCPIP.RCVD.FRAMEA
|
||||||
|
bcc .8
|
||||||
|
|
||||||
|
.1 lda #$ff
|
||||||
|
>SYSCALL FreeMemA
|
||||||
|
|
||||||
.8 clc
|
.8 clc
|
||||||
rts
|
rts
|
||||||
|
@ -40,7 +40,7 @@ CS.INIT >LDYA L.LIBTCPIP
|
|||||||
sta hLIBTCPIP
|
sta hLIBTCPIP
|
||||||
|
|
||||||
>PUSHWI S.IP.PROTOCOL.TCP
|
>PUSHWI S.IP.PROTOCOL.TCP
|
||||||
>PUSHWI TCP.PORT.TELNETS
|
>PUSHWI TCP.PORT.TELNET
|
||||||
>LIBCALL hLIBTCPIP,LIBTCPIP.NewSrvSocket
|
>LIBCALL hLIBTCPIP,LIBTCPIP.NewSrvSocket
|
||||||
bcs .99
|
bcs .99
|
||||||
sta hSrvSocket
|
sta hSrvSocket
|
||||||
@ -52,8 +52,6 @@ CS.RUN >PUSHB hSrvSocket
|
|||||||
>LIBCALL hLIBTCPIP,LIBTCPIP.SrvSocketAccept
|
>LIBCALL hLIBTCPIP,LIBTCPIP.SrvSocketAccept
|
||||||
bcs .8
|
bcs .8
|
||||||
|
|
||||||
>LIBCALL hLIBTCPIP,LIBTCPIP.CreateDevice
|
|
||||||
bcs *
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user