Kernel version 0.9 : TCPIP migration, fixed timing issues in DHCPCLNT, Broadcast not cleared properly....and working on TCP....

This commit is contained in:
Rémy GIBERT 2017-01-28 23:05:20 +01:00
parent 9c457ceed4
commit d736762046
14 changed files with 237 additions and 164 deletions

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -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

View File

@ -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
@ -186,12 +201,15 @@ 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
*-------------------------------------- *--------------------------------------

View File

@ -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

View File

@ -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

View File

@ -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
bra * lda ZPFrameBase1+1
.99 clc 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
ldy #S.SOCKET.SQ.ACKNUM+3
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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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 *