mirror of
https://github.com/A2osX/A2osX.git
synced 2025-02-22 12:29:21 +00:00
Kernel version 0.9 : TCP & MkNodA
This commit is contained in:
parent
66d20ceba0
commit
635529e795
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.
@ -69,6 +69,8 @@ CS.RUN >LDYA L.MSG0
|
||||
lda #K.SKTTABLE.SIZE
|
||||
sta SocketCount
|
||||
|
||||
>DEBUG
|
||||
|
||||
.1 lda (ZPPTR1)
|
||||
beq .7
|
||||
|
||||
@ -100,13 +102,15 @@ CS.RUN >LDYA L.MSG0
|
||||
>LDYA L.MSG1
|
||||
>SYSCALL CPrintFYA
|
||||
|
||||
.7 clc
|
||||
lda ZPPTR1
|
||||
.7 lda ZPPTR1
|
||||
clc
|
||||
adc #S.SOCKET
|
||||
sta ZPPTR1
|
||||
|
||||
lda ZPPTR1+1
|
||||
adc /S.SOCKET
|
||||
sta ZPPTR1+1
|
||||
|
||||
dec SocketCount
|
||||
bne .1
|
||||
|
||||
|
@ -585,6 +585,15 @@ S.NODE.DEV .EQ 5
|
||||
*--------------------------------------
|
||||
* S.NODE.LNK
|
||||
*--------------------------------------
|
||||
S.NODE.SSOCK.HSKT .EQ 2
|
||||
*S.NODE.SSOCK.OPEN .EQ 3
|
||||
*S.NODE.SSOCK.CLOSE .EQ 4
|
||||
*S.NODE.SSOCK.READ .EQ 5
|
||||
*S.NODE.SSOCK.WRITE .EQ 6
|
||||
*S.NODE.SSOCK.STATUS .EQ 7
|
||||
*
|
||||
S.NODE.SSOCK .EQ 8
|
||||
*--------------------------------------
|
||||
S.NODE.FIFO.S .EQ 2
|
||||
S.NODE.FIFO.S.Opened .EQ 1
|
||||
S.NODE.FIFO.S.Closed .EQ 2
|
||||
|
@ -39,6 +39,7 @@ S.DHCP.OPTIONS.MASK .EQ 1
|
||||
S.DHCP.OPTIONS.GW .EQ 3
|
||||
S.DHCP.OPTIONS.DNS .EQ 6
|
||||
S.DHCP.OPTIONS.DOMAIN .EQ 15
|
||||
S.DHCP.OPTIONS.MSGTYPE .EQ 53
|
||||
S.DHCP.OPTIONS.END .EQ 255
|
||||
*
|
||||
S.DHCP .EQ S.UDP+240
|
||||
|
@ -175,12 +175,21 @@ SKT.CloseA cmp #K.SKTTABLE.SIZE
|
||||
cmp #S.SOCKET.SOCK.RAW
|
||||
beq .8
|
||||
|
||||
cmp #S.SOCKET.SOCK.STREAM
|
||||
bne SKT.GetA.9
|
||||
|
||||
ldy #S.SOCKET.SO
|
||||
lda (ZPPtrSKT),y
|
||||
bit #S.SOCKET.SO.ACCEPTCONN
|
||||
|
||||
beq *
|
||||
bne *
|
||||
|
||||
ldy #S.SOCKET.TCP.OPTIONS
|
||||
lda (ZPPtrSKT),y
|
||||
ora #S.TCP.OPTIONS.FIN
|
||||
sta (ZPPtrSKT),y
|
||||
clc
|
||||
rts
|
||||
|
||||
.8 lda #0
|
||||
sta (ZPPtrSKT)
|
||||
@ -393,7 +402,7 @@ SKT.Write.TCP ldy #S.SOCKET.TCP.STATUS
|
||||
jsr SKT.AddDataToSktOut
|
||||
bcs .90
|
||||
|
||||
jsr TCP.OUT try to push, ignore error....
|
||||
jsr TCP.OUT.ESTBLSH try to push, ignore error....
|
||||
clc
|
||||
rts
|
||||
|
||||
|
@ -73,6 +73,8 @@ TCP.IN jsr IP.FillSKT.TemplateSrcDst
|
||||
|
||||
ldy #S.SOCKET.TCP.STATUS
|
||||
lda (ZPPtrSKT),y
|
||||
cmp #S.SOCKET.TCP.STATUS.TIMEWT
|
||||
bcs *
|
||||
asl
|
||||
tax
|
||||
jmp (L.TCP.IN.JMP,x)
|
||||
@ -91,8 +93,8 @@ TCP.IN jsr IP.FillSKT.TemplateSrcDst
|
||||
.9 clc Discard frame
|
||||
rts
|
||||
*--------------------------------------
|
||||
TCP.IN.RST txa
|
||||
jsr SKT.CloseA
|
||||
TCP.IN.RST lda #0
|
||||
sta (ZPPtrSKT)
|
||||
clc
|
||||
rts
|
||||
*--------------------------------------
|
||||
@ -152,15 +154,7 @@ TCP.IN.JMP.LISTEN
|
||||
dex
|
||||
bpl .4
|
||||
|
||||
ldy #S.SOCKET.TCP.STATUS
|
||||
lda #S.SOCKET.TCP.STATUS.SYNRCVD
|
||||
sta (ZPPtrSKT),y
|
||||
|
||||
ldy #S.SOCKET.TCP.OPTIONS
|
||||
lda #S.TCP.OPTIONS.SYN+S.TCP.OPTIONS.ACK
|
||||
sta (ZPPtrSKT),y
|
||||
|
||||
jsr TCP.Out
|
||||
jsr TCP.OUT.SYNACK
|
||||
bcs .9
|
||||
|
||||
ldy #S.SOCKET.TCP.STATUS
|
||||
@ -172,10 +166,6 @@ TCP.IN.JMP.LISTEN
|
||||
rts
|
||||
*--------------------------------------
|
||||
TCP.IN.JMP.SYNSENT
|
||||
clc
|
||||
rts
|
||||
*--------------------------------------
|
||||
TCP.IN.JMP.SYNRCVD
|
||||
ldy #S.TCP.OPTIONS only accept ACK packet
|
||||
lda (ZPFrameInPtr),y
|
||||
cmp #S.TCP.OPTIONS.ACK
|
||||
@ -218,6 +208,10 @@ TCP.IN.JMP.SYNRCVD
|
||||
.8 clc
|
||||
rts
|
||||
*--------------------------------------
|
||||
TCP.IN.JMP.SYNRCVD
|
||||
clc
|
||||
rts
|
||||
*--------------------------------------
|
||||
TCP.IN.JMP.ESTBLSH
|
||||
ldy #S.TCP.OPTIONS
|
||||
lda (ZPFrameInPtr),y
|
||||
@ -292,29 +286,33 @@ TCP.IN.JMP.TIMEWT
|
||||
clc
|
||||
rts
|
||||
*--------------------------------------
|
||||
TCP.OUT ldy #S.SOCKET.TCP.OPTIONS
|
||||
lda (ZPPtrSKT),y
|
||||
bit #S.TCP.OPTIONS.SYN
|
||||
beq TCP.OUT.ESTBLSH
|
||||
|
||||
>LDYAI 0
|
||||
TCP.OUT.SYNACK >LDYAI 0
|
||||
jsr TCP.NewFrame
|
||||
bcs .9
|
||||
|
||||
ldx #3
|
||||
ldy #S.TCP.ACK.NUMBER+3
|
||||
|
||||
.1 lda TmpDWord,x
|
||||
sta (ZPFrameOutPtr),y
|
||||
dey
|
||||
dex
|
||||
bpl .1
|
||||
|
||||
ldy #S.TCP.OPTIONS
|
||||
lda #S.TCP.OPTIONS.SYN+S.TCP.OPTIONS.ACK
|
||||
sta (ZPFrameOutPtr),y
|
||||
sta (ZPFrameOutPtr),y
|
||||
|
||||
jsr TCP.SendFrame
|
||||
bcs .9
|
||||
|
||||
ldy #S.TCP.OPTIONS
|
||||
ldy #S.SOCKET.TCP.OPTIONS
|
||||
lda #0
|
||||
sta (ZPFrameOutPtr),y
|
||||
sta (ZPPtrSKT),y
|
||||
|
||||
ldy #S.SOCKET.TCP.STATUS
|
||||
lda #S.SOCKET.TCP.STATUS.SYNSENT
|
||||
sta (ZPFrameOutPtr),y
|
||||
sta (ZPPtrSKT),y
|
||||
|
||||
clc
|
||||
.9 rts
|
||||
@ -379,12 +377,7 @@ TCP.OUT.ESTBLSH ldy #S.SOCKET.SQ.OUTUSED
|
||||
|
||||
ldy #S.SOCKET.TCP.OPTIONS
|
||||
lda (ZPPtrSKT),y
|
||||
bit #S.TCP.OPTIONS.ACK
|
||||
beq .7
|
||||
|
||||
ldy #S.TCP.OPTIONS
|
||||
lda (ZPFrameOutPtr),y
|
||||
ora #S.TCP.OPTIONS.ACK
|
||||
sta (ZPFrameOutPtr),y
|
||||
|
||||
.7 jsr TCP.SendFrame
|
||||
@ -392,7 +385,15 @@ TCP.OUT.ESTBLSH ldy #S.SOCKET.SQ.OUTUSED
|
||||
|
||||
ldy #S.SOCKET.TCP.OPTIONS
|
||||
lda (ZPPtrSKT),y
|
||||
and #$ff^S.TCP.OPTIONS.ACK
|
||||
bit #S.TCP.OPTIONS.FIN
|
||||
beq .70
|
||||
|
||||
ldy #S.SOCKET.TCP.STATUS
|
||||
lda #S.SOCKET.TCP.STATUS.FINWT1
|
||||
sta (ZPPtrSKT),y
|
||||
|
||||
.70 ldy #S.SOCKET.TCP.OPTIONS
|
||||
lda #0
|
||||
sta (ZPPtrSKT),y
|
||||
|
||||
ldx #3
|
||||
|
@ -74,13 +74,14 @@ CS.INIT >LDYA L.LIBTCPIP
|
||||
|
||||
stz IPCFG
|
||||
|
||||
>LDYA A2OSX.TIMER16
|
||||
>STYA DHCP.DISC.XID
|
||||
>STYA DHCP.REQ.XID
|
||||
>LDYA A2OSX.RANDOM16
|
||||
>STYA DHCP.DISC.XID+2
|
||||
>STYA DHCP.REQ.XID+2
|
||||
ldx #3
|
||||
|
||||
.11 lda A2osX.TIMER16,x
|
||||
sta DHCP.DISC.XID,x
|
||||
sta DHCP.REQ.XID,x
|
||||
dex
|
||||
bpl .11
|
||||
|
||||
ldx #5
|
||||
.2 lda IPCFG+S.IPCFG.MAC,x
|
||||
sta DHCP.DISC.CHADDR,x
|
||||
@ -134,7 +135,7 @@ CS.RUN.ROFFER >SYSCALL Sleep
|
||||
jsr CS.RUN.SKT.RCVD
|
||||
bcc .1
|
||||
jsr Wait.Timeout
|
||||
bcc CS.RUN.ROFFER
|
||||
bne CS.RUN.ROFFER
|
||||
|
||||
lda #1
|
||||
jmp CS.RUN.KO
|
||||
@ -170,7 +171,7 @@ CS.RUN.RACK >SYSCALL Sleep
|
||||
jsr CS.RUN.SKT.RCVD
|
||||
bcc .1
|
||||
jsr Wait.Timeout
|
||||
bcc CS.RUN.RACK
|
||||
bne CS.RUN.RACK
|
||||
lda #2
|
||||
bra CS.RUN.KO
|
||||
|
||||
@ -250,49 +251,48 @@ CS.QUIT ldy #hSocket
|
||||
CheckDHCPOffer jsr CheckDHCPXID
|
||||
bcs .9
|
||||
|
||||
>LDAXI S.DHCP.OPTIONS
|
||||
jsr SetFramePtr1AX
|
||||
lda ZPFrameBase
|
||||
clc
|
||||
adc #S.DHCP.OPTIONS
|
||||
sta ZPFramePtr
|
||||
|
||||
lda ZPFrameBase+1
|
||||
adc /S.DHCP.OPTIONS
|
||||
sta ZPFramePtr+1
|
||||
|
||||
ldy #2 DHCPOffer ?
|
||||
lda (ZPFramePtr)
|
||||
cmp #S.DHCP.OPTIONS.MSGTYPE
|
||||
bne .9
|
||||
|
||||
ldy #2
|
||||
lda (ZPFramePtr),y
|
||||
cmp #S.DHCP.OPTIONS.DHCPOffer
|
||||
bne .9
|
||||
|
||||
ldy #S.DHCP.YIADDR+3
|
||||
ldx #3
|
||||
|
||||
.1 lda (ZPFrameBase),y
|
||||
sta DHCP.REQ.OPT.REQIP,x
|
||||
sta IPCFG+S.IPCFG.IP,x
|
||||
dey
|
||||
dex
|
||||
bpl .1
|
||||
|
||||
ldx #3
|
||||
ldy #S.IPCFG.IP+3
|
||||
.2 lda DHCP.REQ.OPT.REQIP,x
|
||||
sta IPCFG,y
|
||||
dey
|
||||
dex
|
||||
bpl .2
|
||||
|
||||
ldy #S.IP.SRC+3
|
||||
ldx #3
|
||||
|
||||
.3 lda (ZPFrameBase),y
|
||||
sta DHCP.REQ.OPT.SVRIP,x
|
||||
sta IPCFG+S.IPCFG.DHCPSRVR,x
|
||||
dey
|
||||
dex
|
||||
bpl .3
|
||||
|
||||
ldx #3
|
||||
ldy #S.IPCFG.DHCPSRVR+3
|
||||
.4 lda DHCP.REQ.OPT.SVRIP,x
|
||||
sta IPCFG,y
|
||||
dey
|
||||
dex
|
||||
bpl .4
|
||||
|
||||
.5 inc ZPFramePtr skip Option 53 (DHCPOffer:530102)
|
||||
bne .6
|
||||
inc ZPFramePtr+1
|
||||
|
||||
.6 lda (ZPFramePtr)
|
||||
sec
|
||||
adc ZPFramePtr add option len + 1
|
||||
@ -377,10 +377,20 @@ GetDHCPOption.CopyIP
|
||||
CheckDHCPAck jsr CheckDHCPXID
|
||||
bcs .9
|
||||
|
||||
>LDAXI S.DHCP.OPTIONS
|
||||
jsr SetFramePtr1AX
|
||||
lda ZPFrameBase
|
||||
clc
|
||||
adc #S.DHCP.OPTIONS
|
||||
sta ZPFramePtr
|
||||
|
||||
lda ZPFrameBase+1
|
||||
adc /S.DHCP.OPTIONS
|
||||
sta ZPFramePtr+1
|
||||
|
||||
ldy #2 DHCPAck ?
|
||||
lda (ZPFramePtr)
|
||||
cmp #S.DHCP.OPTIONS.MSGTYPE
|
||||
bne .9
|
||||
|
||||
ldy #2
|
||||
lda (ZPFramePtr),y
|
||||
cmp #S.DHCP.OPTIONS.DHCPAck
|
||||
bne .9
|
||||
@ -395,6 +405,7 @@ CheckDHCPAck jsr CheckDHCPXID
|
||||
*--------------------------------------
|
||||
CheckDHCPXID ldy #S.DHCP.XID+3
|
||||
ldx #3
|
||||
|
||||
.1 lda (ZPFrameBase),y
|
||||
cmp DHCP.DISC.XID,x same XID ?
|
||||
bne .9
|
||||
@ -408,25 +419,14 @@ CheckDHCPXID ldy #S.DHCP.XID+3
|
||||
.9 sec
|
||||
rts
|
||||
*--------------------------------------
|
||||
SetFramePtr1AX clc
|
||||
adc ZPFrameBase
|
||||
sta ZPFramePtr
|
||||
txa
|
||||
adc ZPFrameBase+1
|
||||
sta ZPFramePtr+1
|
||||
rts
|
||||
*--------------------------------------
|
||||
Init.Timeout ldy #TimeOut
|
||||
lda #TIMEOUT.MAX
|
||||
sta (pData),y
|
||||
rts
|
||||
*--------------------------------------
|
||||
Wait.TimeOut sec
|
||||
ldy #TimeOut
|
||||
Wait.TimeOut ldy #TimeOut
|
||||
lda (pData),y
|
||||
beq .9
|
||||
clc
|
||||
.9 rts
|
||||
rts
|
||||
*--------------------------------------
|
||||
CS.END
|
||||
LIBTCPIP >PSTR "libtcpip.o"
|
||||
@ -438,7 +438,6 @@ MSG.CFG.ND >CSTR "DHCPCLNT:No Device, exiting.\r\n"
|
||||
MSG.CFG.NA >CSTR "DHCPCLNT:TCPIP Already configured, exiting.\r\n"
|
||||
hLIBTCPIP .BS 1
|
||||
IPCFG .BS S.IPCFG
|
||||
FrameLen .BS 2
|
||||
*--------------------------------------
|
||||
Socket .DA #S.SOCKET.SOCK.DGRAM
|
||||
.BS 3
|
||||
|
@ -171,8 +171,24 @@ K.MkNodYA jsr K.GetDevByNameYA Ptr1=NAME
|
||||
* CC = OK, CS = ERROR
|
||||
* A = hFILE
|
||||
*\--------------------------------------
|
||||
K.MkNodA sec
|
||||
rts
|
||||
K.MkNodA sta .1+1
|
||||
>PUSHWI S.NODE.SSOCK
|
||||
>PUSHBI S.MEM.F.INIT0
|
||||
jsr K.GetMem
|
||||
bcs .9
|
||||
|
||||
>STYA ZPPtr1
|
||||
|
||||
ldy #S.NODE.T
|
||||
lda #S.NODE.T.SSOCK
|
||||
sta (ZPPtr1),y
|
||||
|
||||
ldy #S.NODE.SSOCK.HSKT
|
||||
.1 lda #$ff
|
||||
|
||||
sta (ZPPtr1),y
|
||||
txa
|
||||
.9 rts
|
||||
*/--------------------------------------
|
||||
* #MKFIFO
|
||||
* return a S.FILE to a new FIFO
|
||||
|
@ -384,22 +384,12 @@ SP.DRV.hi lda #$ff
|
||||
*--------------------------------------
|
||||
BLK.DRV
|
||||
*--------------------------------------
|
||||
EvtMgrInit
|
||||
* lda #10
|
||||
* sta EVTMGR.10TH.CNT WARNING!!!! WRONG BANK!!!
|
||||
EvtMgrInit lda #$A5
|
||||
sta A2osX.TIMER16
|
||||
lda #$9B
|
||||
sta A2osX.TIMER16+1
|
||||
|
||||
* lda A2osX.HZ
|
||||
* sta EVTMGR.HZ.CNT
|
||||
|
||||
lda MACHID
|
||||
and #MACHID.TYPE
|
||||
cmp #MACHID.TYPE.IIc
|
||||
bne .8
|
||||
|
||||
* sta CLRIOUDIS
|
||||
* sta ENBVBLIIC
|
||||
|
||||
.8 lda /EvtMgr.Table
|
||||
lda /EvtMgr.Table
|
||||
sta pEvent+1
|
||||
clc
|
||||
rts
|
||||
|
@ -8,7 +8,11 @@ AUTO 6
|
||||
SYS.BASL0 .EQ $800
|
||||
*--------------------------------------
|
||||
K.KernelRun jsr TSK.TskMgrRun
|
||||
stx A2osX.RANDOM16
|
||||
jsr EVT.GetEvents
|
||||
txa
|
||||
eor KBD
|
||||
sta A2osX.RANDOM16+1
|
||||
bcs .4 CS=no event
|
||||
|
||||
jsr TSK.DispatchEvents
|
||||
@ -51,9 +55,7 @@ K.KernelRun jsr TSK.TskMgrRun
|
||||
.42 bit OPENAPPLE
|
||||
bpl K.KernelRun
|
||||
|
||||
inc A2osX.RANDOM16
|
||||
lda KBD
|
||||
sta A2osX.RANDOM16+1
|
||||
|
||||
bpl K.KernelRun
|
||||
|
||||
|
@ -85,7 +85,6 @@ A2osX.D002 .EQ *
|
||||
.INB SYS/KERNEL.S.ARG
|
||||
.INB SYS/KERNEL.S.ENV
|
||||
*--------------------------------------
|
||||
.INB SYS/KERNEL.S.CNV
|
||||
.INB SYS/KERNEL.S.RUN
|
||||
.INB SYS/KERNEL.S.EVT
|
||||
.INB SYS/KERNEL.S.TSK
|
||||
@ -100,6 +99,7 @@ A2osX.E000 .EQ *
|
||||
.INB SYS/KERNEL.S.DAT
|
||||
.INB SYS/KERNEL.S.IRQ
|
||||
.INB SYS/KERNEL.S.MEM
|
||||
.INB SYS/KERNEL.S.CNV
|
||||
.INB SYS/KERNEL.S.CHR
|
||||
*--------------------------------------
|
||||
PullPtr1Ptr2Ptr3
|
||||
|
Loading…
x
Reference in New Issue
Block a user