mirror of
https://github.com/A2osX/A2osX.git
synced 2025-01-12 17:30:23 +00:00
Kernel version 0.9 : LIBTCPIP development resuming....
This commit is contained in:
parent
8e863610f5
commit
30cdf5a6c8
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.
@ -44,10 +44,11 @@ LIBTCPIP.HST.GETBYADDR .EQ 30
|
|||||||
|
|
||||||
LIBTCPIP.SKT.New .EQ 32
|
LIBTCPIP.SKT.New .EQ 32
|
||||||
LIBTCPIP.SKT.CLOSEA .EQ 34
|
LIBTCPIP.SKT.CLOSEA .EQ 34
|
||||||
LIBTCPIP.SKT.GETTABLE .EQ 36
|
LIBTCPIP.SKT.GETTABLE .EQ 36
|
||||||
LIBTCPIP.SKT.GETA .EQ 38
|
LIBTCPIP.SKT.GETA .EQ 38
|
||||||
|
|
||||||
LIBTCPIP.SKT.ACCEPTA .EQ 40
|
LIBTCPIP.SKT.AcceptA .EQ 40
|
||||||
|
LIBTCPIP.SKT.MkNodA .EQ 42
|
||||||
|
|
||||||
LIBTCPIP.SKT.Write .EQ 44
|
LIBTCPIP.SKT.Write .EQ 44
|
||||||
LIBTCPIP.SKT.Read .EQ 46
|
LIBTCPIP.SKT.Read .EQ 46
|
||||||
|
@ -284,6 +284,19 @@ SKT.AcceptA jsr SKT.GetA.I
|
|||||||
.99 lda #ERR.SKT.BAD
|
.99 lda #ERR.SKT.BAD
|
||||||
sec
|
sec
|
||||||
.9 rts
|
.9 rts
|
||||||
|
|
||||||
|
*/--------------------------------------
|
||||||
|
* #SKT.MkNodA
|
||||||
|
* Create a new file from TCP socket
|
||||||
|
* ##In :
|
||||||
|
* A = hSocket
|
||||||
|
* ##Out :
|
||||||
|
* A = hFile
|
||||||
|
*\--------------------------------------
|
||||||
|
SKT.MkNodA
|
||||||
|
|
||||||
|
sec
|
||||||
|
rts
|
||||||
*/--------------------------------------
|
*/--------------------------------------
|
||||||
* #SKT.Write (DGRAM,STREAM,RAW)
|
* #SKT.Write (DGRAM,STREAM,RAW)
|
||||||
* Send block of data
|
* Send block of data
|
||||||
@ -292,13 +305,12 @@ SKT.AcceptA jsr SKT.GetA.I
|
|||||||
* PUSHW = pBuf
|
* PUSHW = pBuf
|
||||||
* PUSHW = len
|
* PUSHW = len
|
||||||
* ##Out :
|
* ##Out :
|
||||||
* A = hFrame
|
|
||||||
*\--------------------------------------
|
*\--------------------------------------
|
||||||
SKT.Write >PULLW ZPDataInLen
|
SKT.Write >PULLW ZPDataInLen
|
||||||
>PULLW ZPDataInPtr
|
>PULLW ZPDataInPtr
|
||||||
>PULLB hSocket
|
>PULLB hSocket
|
||||||
|
|
||||||
jsr SKT.GetA.I
|
SKT.Write.I jsr SKT.GetA.I
|
||||||
bcs .9
|
bcs .9
|
||||||
|
|
||||||
cmp #S.SOCKET.SOCK.DGRAM
|
cmp #S.SOCKET.SOCK.DGRAM
|
||||||
@ -435,10 +447,19 @@ SKT.ReadA jsr SKT.GetA.I
|
|||||||
* PUSHB = hSocket
|
* PUSHB = hSocket
|
||||||
* PUSHB = Char
|
* PUSHB = Char
|
||||||
* ##Out :
|
* ##Out :
|
||||||
* A = char
|
|
||||||
*\--------------------------------------
|
*\--------------------------------------
|
||||||
SKT.PutC sec
|
SKT.PutC >PULLB TmpByte
|
||||||
rts
|
|
||||||
|
>PULLB hSocket
|
||||||
|
|
||||||
|
lda #1
|
||||||
|
sta ZPDataOutLen
|
||||||
|
stz ZPDataOutLen+1
|
||||||
|
|
||||||
|
>LDYA L.TmpByte
|
||||||
|
>STYA ZPDataOutPtr
|
||||||
|
|
||||||
|
jmp SKT.Write.I
|
||||||
*/--------------------------------------
|
*/--------------------------------------
|
||||||
* #SKT.PutS (STREAM)
|
* #SKT.PutS (STREAM)
|
||||||
* Write Line in pBuf
|
* Write Line in pBuf
|
||||||
@ -447,9 +468,17 @@ SKT.PutC sec
|
|||||||
* PUSHW = PSTR
|
* PUSHW = PSTR
|
||||||
* ##Out :
|
* ##Out :
|
||||||
*\--------------------------------------
|
*\--------------------------------------
|
||||||
SKT.PutS
|
SKT.PutS >PULLW ZPDataOutPtr
|
||||||
sec
|
lda (ZPDataOutPtr)
|
||||||
rts
|
|
||||||
|
sta ZPDataOutLen
|
||||||
|
stz ZPDataOutLen+1
|
||||||
|
|
||||||
|
inc ZPDataOutPtr
|
||||||
|
bne .1
|
||||||
|
inc ZPDataOutPtr+1
|
||||||
|
|
||||||
|
.1 jmp SKT.Write.I
|
||||||
*/--------------------------------------
|
*/--------------------------------------
|
||||||
* #SKT.GetCA (STREAM)
|
* #SKT.GetCA (STREAM)
|
||||||
* Read a Char From Stream in A
|
* Read a Char From Stream in A
|
||||||
@ -458,8 +487,21 @@ SKT.PutS
|
|||||||
* ##Out :
|
* ##Out :
|
||||||
* A = char
|
* A = char
|
||||||
*\--------------------------------------
|
*\--------------------------------------
|
||||||
SKT.GetCA sec
|
SKT.GetCA sta hSocket
|
||||||
rts
|
stz bTextMode
|
||||||
|
|
||||||
|
lda #1
|
||||||
|
sta ZPDataOutLen
|
||||||
|
stz ZPDataOutLen+1
|
||||||
|
|
||||||
|
>LDYA L.TmpByte
|
||||||
|
>STYA ZPDataOutPtr
|
||||||
|
|
||||||
|
jsr SKT.Read.I
|
||||||
|
bcs .9
|
||||||
|
lda TmpByte
|
||||||
|
|
||||||
|
.9 rts
|
||||||
*/--------------------------------------
|
*/--------------------------------------
|
||||||
* #SKT.GetS (STREAM)
|
* #SKT.GetS (STREAM)
|
||||||
* Read a CR terminated Line in pBuf
|
* Read a CR terminated Line in pBuf
|
||||||
@ -488,7 +530,7 @@ SKT.Read clc
|
|||||||
>PULLW ZPDataOutPtr
|
>PULLW ZPDataOutPtr
|
||||||
>PULLB hSocket
|
>PULLB hSocket
|
||||||
|
|
||||||
jsr SKT.GetA.I
|
SKT.Read.I jsr SKT.GetA.I
|
||||||
bcs .99
|
bcs .99
|
||||||
cmp #S.SOCKET.SOCK.STREAM
|
cmp #S.SOCKET.SOCK.STREAM
|
||||||
bne .90 bad skt
|
bne .90 bad skt
|
||||||
|
@ -65,6 +65,12 @@ TCP.IN jsr IP.FillSKT.TemplateSrcDst
|
|||||||
bne .6
|
bne .6
|
||||||
|
|
||||||
stx hSocket
|
stx hSocket
|
||||||
|
|
||||||
|
ldy #S.TCP.OPTIONS
|
||||||
|
lda (ZPFrameInPtr),y
|
||||||
|
and #S.TCP.OPTIONS.RST RST ? go Kill this socket.
|
||||||
|
bne TCP.IN.RST
|
||||||
|
|
||||||
ldy #S.SOCKET.TCP.STATUS
|
ldy #S.SOCKET.TCP.STATUS
|
||||||
lda (ZPPtrSKT),y
|
lda (ZPPtrSKT),y
|
||||||
asl
|
asl
|
||||||
@ -85,6 +91,11 @@ TCP.IN jsr IP.FillSKT.TemplateSrcDst
|
|||||||
.9 clc Discard frame
|
.9 clc Discard frame
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
TCP.IN.RST txa
|
||||||
|
jsr SKT.CloseA
|
||||||
|
clc
|
||||||
|
rts
|
||||||
|
*--------------------------------------
|
||||||
TCP.IN.JMP.CLOSED
|
TCP.IN.JMP.CLOSED
|
||||||
clc
|
clc
|
||||||
rts
|
rts
|
||||||
|
@ -76,8 +76,8 @@ CS.START cld
|
|||||||
.DA SKT.GETTABLE
|
.DA SKT.GETTABLE
|
||||||
.DA SKT.GETA
|
.DA SKT.GETA
|
||||||
|
|
||||||
.DA SKT.ACCEPTA
|
.DA SKT.AcceptA
|
||||||
.DA $FFFF
|
.DA SKT.MkNodA
|
||||||
|
|
||||||
.DA SKT.Write
|
.DA SKT.Write
|
||||||
.DA SKT.Read
|
.DA SKT.Read
|
||||||
@ -95,6 +95,7 @@ L.DNS.MSG .DA DNS.MSG
|
|||||||
L.ARP.CACHE .DA ARP.CACHE
|
L.ARP.CACHE .DA ARP.CACHE
|
||||||
L.DNS.CACHE .DA DNS.CACHE
|
L.DNS.CACHE .DA DNS.CACHE
|
||||||
L.SKT.Template .DA SKT.Template
|
L.SKT.Template .DA SKT.Template
|
||||||
|
L.TmpByte .DA TmpByte
|
||||||
L.TCP.IN.JMP .DA TCP.IN.JMP.CLOSED
|
L.TCP.IN.JMP .DA TCP.IN.JMP.CLOSED
|
||||||
.DA TCP.IN.JMP.LISTEN
|
.DA TCP.IN.JMP.LISTEN
|
||||||
.DA TCP.IN.JMP.SYNSENT
|
.DA TCP.IN.JMP.SYNSENT
|
||||||
@ -294,6 +295,7 @@ DNS.TmpCache .BS S.DNSCACHE
|
|||||||
ARP.TmpCache .BS S.ARP
|
ARP.TmpCache .BS S.ARP
|
||||||
SKT.Template .BS S.SOCKET.TEMPLATE
|
SKT.Template .BS S.SOCKET.TEMPLATE
|
||||||
SKT.TCBCache .BS S.SOCKET
|
SKT.TCBCache .BS S.SOCKET
|
||||||
|
TmpByte .BS 1
|
||||||
TmpDWord .BS 4
|
TmpDWord .BS 4
|
||||||
TmpOffset .BS 2
|
TmpOffset .BS 2
|
||||||
hFrameIn .BS 1
|
hFrameIn .BS 1
|
||||||
|
@ -105,7 +105,7 @@ CS.RUN.INIT ldx #3
|
|||||||
ldy #hSocket
|
ldy #hSocket
|
||||||
lda (pData),y
|
lda (pData),y
|
||||||
|
|
||||||
>LIBCALL hLIBTCPIP,LIBTCPIP.SKT.ACCEPTA
|
>LIBCALL hLIBTCPIP,LIBTCPIP.SKT.AcceptA
|
||||||
bcs .11
|
bcs .11
|
||||||
>LIBCALL hLIBTCPIP,LIBTCPIP.SKT.GETA
|
>LIBCALL hLIBTCPIP,LIBTCPIP.SKT.GETA
|
||||||
>STYA ZPSktPtr
|
>STYA ZPSktPtr
|
||||||
|
@ -12,6 +12,12 @@ AUTO 6
|
|||||||
.INB /A2OSX.DEV/INC/A2OSX.I
|
.INB /A2OSX.DEV/INC/A2OSX.I
|
||||||
.INB /A2OSX.DEV/INC/LIBTCPIP.I
|
.INB /A2OSX.DEV/INC/LIBTCPIP.I
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
TIMEOUT.MAX .EQ 30 30 sec.
|
||||||
|
CONN.MAX .EQ 16
|
||||||
|
*--------------------------------------
|
||||||
|
ZPIPCfgPtr .EQ ZPBIN
|
||||||
|
ZPSktPtr .EQ ZPBIN+2
|
||||||
|
*--------------------------------------
|
||||||
* File Header (16 Bytes)
|
* File Header (16 Bytes)
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CS.START cld
|
CS.START cld
|
||||||
@ -20,7 +26,7 @@ CS.START cld
|
|||||||
.DA #1 BIN Layout Version 1
|
.DA #1 BIN Layout Version 1
|
||||||
.DA 0
|
.DA 0
|
||||||
.DA CS.END-CS.START Code Length To Relocate
|
.DA CS.END-CS.START Code Length To Relocate
|
||||||
.DA 0
|
.DA DS.END-DS.START Data Segment to Allocate
|
||||||
.DA 0
|
.DA 0
|
||||||
.DA 0
|
.DA 0
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
@ -31,52 +37,236 @@ 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.MSG.TCPWAIT .DA MSG.TCPWAIT
|
||||||
|
L.MSG.INITOK .DA MSG.INITOK
|
||||||
|
L.MSG.TCPIPERR .DA MSG.TCPIPERR
|
||||||
|
L.MSG.SKTERR .DA MSG.SKTERR
|
||||||
|
L.MSG.ABORT .DA MSG.ABORT
|
||||||
|
L.MSG.INCOMING .DA MSG.INCOMING
|
||||||
.DA 0
|
.DA 0
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CS.INIT >LDYA L.LIBTCPIP
|
CS.INIT >LDYA L.LIBTCPIP
|
||||||
>SYSCALL LoadLibYA
|
>SYSCALL LoadLibYA
|
||||||
bcs .99
|
|
||||||
|
|
||||||
sta hLIBTCPIP
|
sta hLIBTCPIP
|
||||||
|
|
||||||
>PUSHWI S.IP.PROTOCOL.TCP
|
lda (pPs)
|
||||||
>PUSHWI TCP.PORT.TELNET
|
ora #S.PS.F.EVENT Now accept events
|
||||||
>LIBCALL hLIBTCPIP,LIBTCPIP.NewSrvSocket
|
sta (pPs)
|
||||||
bcs .99
|
clc
|
||||||
sta hSrvSocket
|
rts
|
||||||
|
|
||||||
clc
|
|
||||||
.99 rts
|
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CS.RUN >PUSHB hSrvSocket
|
CS.RUN jsr Init.Timeout
|
||||||
>LIBCALL hLIBTCPIP,LIBTCPIP.SrvSocketAccept
|
|
||||||
|
>LDYA L.MSG.TCPWAIT
|
||||||
|
>SYSCALL CPrintFYA
|
||||||
|
|
||||||
|
.1 >LIBCALL hLIBTCPIP,LIBTCPIP.GET.IPCFG is TCPIP loaded ?
|
||||||
|
bcs .99
|
||||||
|
>STYA ZPIPCfgPtr
|
||||||
|
|
||||||
|
lda (ZPIPCfgPtr) Configured ?
|
||||||
|
bmi CS.RUN.INIT
|
||||||
|
|
||||||
|
>SYSCALL Sleep
|
||||||
|
jsr Wait.Timeout
|
||||||
|
bcc .1
|
||||||
|
>SYSCALL GetC
|
||||||
|
bcs .1
|
||||||
|
cmp #$03
|
||||||
|
bne .1
|
||||||
|
jmp CS.RUN.ABORT
|
||||||
|
|
||||||
|
.99 >LDYA L.MSG.TCPIPERR
|
||||||
|
>SYSCALL CPrintFYA
|
||||||
|
lda #SYSMGR.ERRSYN
|
||||||
|
sec
|
||||||
|
rts
|
||||||
|
|
||||||
|
CS.RUN.INIT ldx #3
|
||||||
|
ldy #S.IPCFG.IP+3
|
||||||
|
.1 lda (ZPIPCfgPtr),y
|
||||||
|
sta Socket.Src.Addr,x
|
||||||
|
dey
|
||||||
|
dex
|
||||||
|
bpl .1
|
||||||
|
|
||||||
|
>PUSHW L.Socket
|
||||||
|
>LIBCALL hLIBTCPIP,LIBTCPIP.SKT.New
|
||||||
|
bcs .9
|
||||||
|
txa
|
||||||
|
ldy #hSrvSocket
|
||||||
|
sta (pData),y
|
||||||
|
|
||||||
|
>LDYA L.MSG.INITOK
|
||||||
|
>SYSCALL CPrintFYA
|
||||||
|
|
||||||
|
.2 >SYSCALL Sleep
|
||||||
|
jsr CS.RUN.SERVER
|
||||||
|
bcs CS.RUN.ERR
|
||||||
|
|
||||||
|
ldy #SktIndex
|
||||||
|
lda (pData),y
|
||||||
|
tay
|
||||||
|
lda (pData),y hSockets
|
||||||
|
|
||||||
|
beq .3
|
||||||
|
|
||||||
|
* jsr CS.RUN.CLIENT
|
||||||
|
|
||||||
|
.3 ldy #SktIndex
|
||||||
|
lda (pData),y
|
||||||
|
inc
|
||||||
|
cmp #CONN.MAX
|
||||||
|
bne .4
|
||||||
|
lda #0
|
||||||
|
|
||||||
|
.4 sta (pData),y
|
||||||
|
|
||||||
|
bra .2
|
||||||
|
|
||||||
|
.9 >LDYA L.MSG.SKTERR
|
||||||
|
>SYSCALL CPrintFYA
|
||||||
|
lda #SYSMGR.ERRSYN
|
||||||
|
sec
|
||||||
|
rts
|
||||||
|
|
||||||
|
CS.RUN.ABORT >LDYA L.MSG.ABORT
|
||||||
|
>SYSCALL CPrintFYA
|
||||||
|
lda #0
|
||||||
|
|
||||||
|
CS.RUN.ERR sec
|
||||||
|
rts
|
||||||
|
*--------------------------------------
|
||||||
|
CS.RUN.SERVER ldy #hSrvSocket
|
||||||
|
lda (pData),y
|
||||||
|
|
||||||
|
>LIBCALL hLIBTCPIP,LIBTCPIP.SKT.AcceptA
|
||||||
bcs .8
|
bcs .8
|
||||||
|
pha
|
||||||
|
|
||||||
|
ldy #hSockets
|
||||||
|
ldx #CONN.MAX
|
||||||
|
|
||||||
|
.1 lda (pData),y
|
||||||
|
beq .2
|
||||||
|
iny
|
||||||
|
dex
|
||||||
|
bne .1
|
||||||
|
|
||||||
|
pla
|
||||||
|
>LIBCALL hLIBTCPIP,LIBTCPIP.SKT.CloseA
|
||||||
|
bra .8
|
||||||
|
|
||||||
|
.2 pla
|
||||||
|
sta (pData),y
|
||||||
|
|
||||||
|
>LIBCALL hLIBTCPIP,LIBTCPIP.SKT.GetA
|
||||||
|
>STYA ZPSktPtr
|
||||||
|
|
||||||
|
ldx #3
|
||||||
|
ldy #S.SOCKET.DST.ADDR+3
|
||||||
|
|
||||||
|
.3 >PUSHB (ZPSktPtr),y
|
||||||
|
dey
|
||||||
|
dex
|
||||||
|
bpl .3
|
||||||
|
|
||||||
|
>LDYA L.MSG.INCOMING
|
||||||
|
>SYSCALL CPrintFYA
|
||||||
|
.8 clc
|
||||||
|
.9 rts
|
||||||
|
*--------------------------------------
|
||||||
|
CS.RUN.CLIENT >PUSHA hSocket
|
||||||
|
sta .1+1
|
||||||
|
>LIBCALL hLIBTCPIP,LIBTCPIP.SKT.GetCA
|
||||||
|
bcs .8
|
||||||
|
sta .2+1
|
||||||
|
|
||||||
|
>SYSCALL PutCA
|
||||||
|
|
||||||
|
|
||||||
|
.1 lda #$ff
|
||||||
|
>PUSHA
|
||||||
|
|
||||||
|
.2 lda #$ff
|
||||||
|
>PUSHA
|
||||||
|
|
||||||
|
>LIBCALL hLIBTCPIP,LIBTCPIP.SKT.PutC
|
||||||
|
|
||||||
.8 clc
|
.8 clc
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CS.DOEVENT clc
|
CS.DOEVENT sec
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CS.QUIT >PUSHB hSrvSocket
|
CS.QUIT ldx #CONN.MAX
|
||||||
>LIBCALL hLIBTCPIP,LIBTCPIP.CloseSocket
|
ldy #hSockets
|
||||||
|
|
||||||
|
.1 lda (pData),y
|
||||||
|
beq .2
|
||||||
|
|
||||||
|
phx
|
||||||
|
phy
|
||||||
|
>LIBCALL hLIBTCPIP,LIBTCPIP.SKT.CLOSEA
|
||||||
|
ply
|
||||||
|
plx
|
||||||
|
|
||||||
|
.2 iny
|
||||||
|
dex
|
||||||
|
bne .1
|
||||||
|
|
||||||
|
ldy #hSrvSocket
|
||||||
|
lda (pData),y
|
||||||
|
>LIBCALL hLIBTCPIP,LIBTCPIP.SKT.CLOSEA
|
||||||
|
|
||||||
|
|
||||||
lda hLIBTCPIP
|
lda hLIBTCPIP
|
||||||
>SYSCALL UnloadLibA
|
>SYSCALL UnloadLibA
|
||||||
clc
|
clc
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
Init.Timeout ldy #TimeOut
|
||||||
|
lda #TIMEOUT.MAX
|
||||||
|
sta (pData),y
|
||||||
|
rts
|
||||||
|
*--------------------------------------
|
||||||
|
Wait.TimeOut sec
|
||||||
|
ldy #TimeOut
|
||||||
|
lda (pData),y
|
||||||
|
beq .9
|
||||||
|
clc
|
||||||
|
.9 rts
|
||||||
|
*--------------------------------------
|
||||||
CS.END
|
CS.END
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
LIBTCPIP >PSTR "libtcpip.o"
|
LIBTCPIP >PSTR "libtcpip.o"
|
||||||
|
MSG.TCPWAIT >CSTR "TELNETD:Waiting for TCP/IP initializing...\r\n"
|
||||||
|
MSG.INITOK >CSTR "TELNETD:Init Ok, Listening.\r\n"
|
||||||
|
MSG.TCPIPERR >CSTR "TELNETD:TCP/IP Not initialized properly\r\n"
|
||||||
|
MSG.SKTERR >CSTR "TELNETD:Listen Error\r\n"
|
||||||
|
MSG.ABORT >CSTR "TELNETD:User Aborted\r\n"
|
||||||
|
MSG.INCOMING >CSTR "TELNETD:Incoming Connection From : %d.%d.%d.%d\r\n"
|
||||||
hLIBTCPIP .BS 1
|
hLIBTCPIP .BS 1
|
||||||
hSrvSocket .BS 1
|
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
Socket .DA #S.SOCKET.SOCK.STREAM
|
||||||
|
.DA #S.SOCKET.SO.ACCEPTCONN
|
||||||
|
.DA #S.SOCKET.TCP.STATUS.LISTEN
|
||||||
|
.BS 1
|
||||||
|
Socket.Src.Addr .BS 4
|
||||||
|
Socket.Src.Port .DA 23
|
||||||
|
Socket.Dst.Addr .BS 4
|
||||||
|
Socket.Dst.Port .BS 2
|
||||||
|
*--------------------------------------
|
||||||
|
.DUMMY
|
||||||
|
.OR 0
|
||||||
|
DS.START
|
||||||
|
hSockets .BS CONN.MAX pData
|
||||||
|
SktIndex .BS 1
|
||||||
|
hSrvSocket .BS 1
|
||||||
|
TimeOut .BS 1
|
||||||
|
DS.END
|
||||||
|
.ED
|
||||||
|
*--------------------------------------
|
||||||
MAN
|
MAN
|
||||||
SAVE SBIN/TELNETD.S
|
SAVE SBIN/TELNETD.S
|
||||||
ASM
|
ASM
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
PR#3
|
PR#3
|
||||||
PREFIX /A2OSX.SRC
|
PREFIX /A2OSX.SRC
|
||||||
NEW
|
LOMEM $900
|
||||||
INC 1
|
INC 1
|
||||||
AUTO 6
|
AUTO 6
|
||||||
.LIST OFF
|
.LIST OFF
|
||||||
@ -100,7 +100,7 @@ K.GetDevStatusA jsr K.GetDevByIDA
|
|||||||
jmp (ZPPtr1)
|
jmp (ZPPtr1)
|
||||||
*/--------------------------------------
|
*/--------------------------------------
|
||||||
* #MkNodYA
|
* #MkNodYA
|
||||||
* return a S.FILE for a given Device NAME
|
* return a hFile for a given Device Name
|
||||||
* ##IN:
|
* ##IN:
|
||||||
* Y,A=DevName
|
* Y,A=DevName
|
||||||
* ##OUT:
|
* ##OUT:
|
||||||
@ -164,7 +164,7 @@ K.MkNodYA jsr K.GetDevByNameYA Ptr1=NAME
|
|||||||
.4 jmp $ffff
|
.4 jmp $ffff
|
||||||
*/--------------------------------------
|
*/--------------------------------------
|
||||||
* #MkNodA
|
* #MkNodA
|
||||||
* return a S.FILE for a given Socket
|
* return a hFile for a given Socket
|
||||||
* ##IN:
|
* ##IN:
|
||||||
* A=hSocket
|
* A=hSocket
|
||||||
* ##OUT:
|
* ##OUT:
|
||||||
@ -186,7 +186,7 @@ K.MKFIFO >PUSHWI 256
|
|||||||
jsr K.GetMem
|
jsr K.GetMem
|
||||||
bcs .99
|
bcs .99
|
||||||
|
|
||||||
phx save FIFO buffer
|
stx .1+1 save FIFO buffer
|
||||||
|
|
||||||
>PUSHWI S.NODE.FIFO
|
>PUSHWI S.NODE.FIFO
|
||||||
>PUSHBI S.MEM.F.INIT0
|
>PUSHBI S.MEM.F.INIT0
|
||||||
@ -201,15 +201,14 @@ K.MKFIFO >PUSHWI 256
|
|||||||
sta (ZPPtr1),y
|
sta (ZPPtr1),y
|
||||||
|
|
||||||
iny S.NODE.FIFO.hMem
|
iny S.NODE.FIFO.hMem
|
||||||
pla
|
.1 lda #$ff Self Modified
|
||||||
sta (ZPPtr1),y
|
sta (ZPPtr1),y
|
||||||
txa
|
txa
|
||||||
clc
|
clc
|
||||||
rts
|
rts
|
||||||
|
|
||||||
.9 plx get back FIFO buffer
|
.9 pha save error code
|
||||||
pha save error code
|
lda .1+1 get back FIFO buffer
|
||||||
txa
|
|
||||||
jsr K.FreeMemA
|
jsr K.FreeMemA
|
||||||
pla
|
pla
|
||||||
sec
|
sec
|
||||||
|
@ -159,7 +159,7 @@ Prints Pascal/C-Style String
|
|||||||
+ Y,A = Ptr to S.DEVINFO
|
+ Y,A = Ptr to S.DEVINFO
|
||||||
|
|
||||||
#MkNodYA
|
#MkNodYA
|
||||||
return a S.FILE for a given Device NAME
|
return a hFile for a given Device Name
|
||||||
|
|
||||||
##IN:
|
##IN:
|
||||||
+ Y,A=DevName
|
+ Y,A=DevName
|
||||||
@ -169,7 +169,7 @@ return a S.FILE for a given Device NAME
|
|||||||
+ A = hFILE
|
+ A = hFILE
|
||||||
|
|
||||||
#MkNodA
|
#MkNodA
|
||||||
return a S.FILE for a given Socket
|
return a hFile for a given Socket
|
||||||
|
|
||||||
##IN:
|
##IN:
|
||||||
+ A=hSocket
|
+ A=hSocket
|
||||||
|
@ -110,6 +110,15 @@
|
|||||||
##Out :
|
##Out :
|
||||||
+ A = hSocket
|
+ A = hSocket
|
||||||
|
|
||||||
|
#SKT.MkNodA
|
||||||
|
+ Create a new file from TCP socket
|
||||||
|
|
||||||
|
##In :
|
||||||
|
+ A = hSocket
|
||||||
|
|
||||||
|
##Out :
|
||||||
|
+ A = hFile
|
||||||
|
|
||||||
#SKT.Write (DGRAM,STREAM,RAW)
|
#SKT.Write (DGRAM,STREAM,RAW)
|
||||||
+ Send block of data
|
+ Send block of data
|
||||||
|
|
||||||
@ -119,7 +128,6 @@
|
|||||||
+ PUSHW = len
|
+ PUSHW = len
|
||||||
|
|
||||||
##Out :
|
##Out :
|
||||||
+ A = hFrame
|
|
||||||
|
|
||||||
#SKT.ReadA (DGRAM,RAW)
|
#SKT.ReadA (DGRAM,RAW)
|
||||||
|
|
||||||
@ -137,7 +145,6 @@
|
|||||||
+ PUSHB = Char
|
+ PUSHB = Char
|
||||||
|
|
||||||
##Out :
|
##Out :
|
||||||
+ A = char
|
|
||||||
|
|
||||||
#SKT.PutS (STREAM)
|
#SKT.PutS (STREAM)
|
||||||
+ Write Line in pBuf
|
+ Write Line in pBuf
|
||||||
|
Loading…
x
Reference in New Issue
Block a user