2017-12-22 21:24:30 +00:00
|
|
|
|
NEW
|
2019-05-05 17:15:37 +00:00
|
|
|
|
AUTO 3,1
|
2017-01-31 16:40:37 +00:00
|
|
|
|
*--------------------------------------
|
2018-10-08 15:41:00 +00:00
|
|
|
|
FRM.GetTargetSKT.TCPUDP
|
2018-10-01 05:48:42 +00:00
|
|
|
|
ldy #S.TCPUDP.SRCPORT
|
|
|
|
|
lda (ZPFrameInPtr),y
|
|
|
|
|
sta SKT.REM.ADDR+S.SOCKADDR.PORT+1
|
|
|
|
|
iny
|
|
|
|
|
lda (ZPFrameInPtr),y
|
|
|
|
|
sta SKT.REM.ADDR+S.SOCKADDR.PORT
|
|
|
|
|
iny #S.TCPUDP.DSTPORT
|
|
|
|
|
lda (ZPFrameInPtr),y
|
|
|
|
|
sta SKT.LOC.ADDR+S.SOCKADDR.PORT+1
|
|
|
|
|
iny
|
|
|
|
|
lda (ZPFrameInPtr),y
|
|
|
|
|
sta SKT.LOC.ADDR+S.SOCKADDR.PORT
|
|
|
|
|
|
2018-10-08 15:41:00 +00:00
|
|
|
|
FRM.GetTargetSKT.RAW
|
2018-10-01 05:48:42 +00:00
|
|
|
|
ldy #S.IP.SRC+3
|
|
|
|
|
ldx #3
|
2019-12-07 17:53:45 +00:00
|
|
|
|
|
2018-10-01 05:48:42 +00:00
|
|
|
|
.1 lda (ZPFrameInPtr),y
|
|
|
|
|
sta SKT.REM.ADDR+S.SOCKADDR.ADDR,x
|
|
|
|
|
dey
|
|
|
|
|
dex
|
|
|
|
|
bpl .1
|
2019-12-07 17:53:45 +00:00
|
|
|
|
|
2018-10-01 05:48:42 +00:00
|
|
|
|
ldy #S.IP.DST+3
|
|
|
|
|
ldx #3
|
2019-12-07 17:53:45 +00:00
|
|
|
|
|
2018-10-01 05:48:42 +00:00
|
|
|
|
.2 lda (ZPFrameInPtr),y
|
|
|
|
|
sta SKT.LOC.ADDR+S.SOCKADDR.ADDR,x
|
|
|
|
|
dey
|
|
|
|
|
dex
|
|
|
|
|
bpl .2
|
2019-12-07 17:53:45 +00:00
|
|
|
|
|
2019-10-03 06:25:27 +00:00
|
|
|
|
rts
|
2018-10-01 05:48:42 +00:00
|
|
|
|
*--------------------------------------
|
2018-09-21 15:28:46 +00:00
|
|
|
|
* FRM.NewIP
|
2017-02-13 07:26:18 +00:00
|
|
|
|
* In:
|
|
|
|
|
* Y,A = DataLen
|
|
|
|
|
* X = S.IP.PROTOCOL.xxx
|
|
|
|
|
* Out:
|
|
|
|
|
* Y,A = Frame PTR
|
|
|
|
|
* X = hMem
|
2017-01-31 16:40:37 +00:00
|
|
|
|
*--------------------------------------
|
2017-02-13 07:26:18 +00:00
|
|
|
|
FRM.NewIP stx .8+1
|
|
|
|
|
>STYA ZPDataOutLen
|
2017-02-15 16:14:41 +00:00
|
|
|
|
cpx #S.IP.PROTOCOL.TCP
|
2017-02-13 07:26:18 +00:00
|
|
|
|
bne .1
|
2019-10-23 15:12:58 +00:00
|
|
|
|
|
2018-07-23 06:28:47 +00:00
|
|
|
|
lda #S.TCP
|
2017-02-13 07:26:18 +00:00
|
|
|
|
bra .4
|
2019-10-23 15:12:58 +00:00
|
|
|
|
|
2017-02-13 07:26:18 +00:00
|
|
|
|
.1 cpx #S.IP.PROTOCOL.UDP
|
|
|
|
|
bne .2
|
2019-10-23 15:12:58 +00:00
|
|
|
|
|
2018-07-23 06:28:47 +00:00
|
|
|
|
lda #S.UDP
|
2017-02-13 07:26:18 +00:00
|
|
|
|
bra .4
|
2019-10-23 15:12:58 +00:00
|
|
|
|
|
2018-07-23 06:28:47 +00:00
|
|
|
|
.2 lda #S.IP
|
2019-10-23 15:12:58 +00:00
|
|
|
|
|
2018-07-24 06:24:23 +00:00
|
|
|
|
.4 sta .5+1 save Header len for reset later
|
2017-02-13 07:26:18 +00:00
|
|
|
|
clc
|
|
|
|
|
adc ZPDataOutLen
|
|
|
|
|
sta ZPFrameOutLen
|
2018-07-23 06:28:47 +00:00
|
|
|
|
tay
|
2017-02-13 07:26:18 +00:00
|
|
|
|
lda #0
|
|
|
|
|
adc ZPDataOutLen+1
|
|
|
|
|
sta ZPFrameOutLen+1
|
2019-05-05 17:15:37 +00:00
|
|
|
|
>SYSCALL2 getmem
|
2016-01-16 22:04:22 +00:00
|
|
|
|
bcs .9
|
2019-10-23 15:12:58 +00:00
|
|
|
|
|
2017-01-31 16:40:37 +00:00
|
|
|
|
stx hFrameOut
|
|
|
|
|
>STYA ZPFrameOutPtr
|
|
|
|
|
|
2018-07-23 06:28:47 +00:00
|
|
|
|
ldy #0
|
2017-02-13 07:26:18 +00:00
|
|
|
|
.5 ldx #$ff Self Modified, header length
|
|
|
|
|
lda #0
|
|
|
|
|
|
|
|
|
|
.6 sta (ZPFrameOutPtr),y
|
|
|
|
|
iny
|
|
|
|
|
dex
|
|
|
|
|
bne .6
|
2019-10-23 15:12:58 +00:00
|
|
|
|
|
2017-02-13 07:26:18 +00:00
|
|
|
|
tya
|
|
|
|
|
* clc
|
|
|
|
|
adc ZPFrameOutPtr
|
|
|
|
|
sta ZPDataOutPtr
|
|
|
|
|
lda #0
|
|
|
|
|
adc ZPFrameOutPtr+1
|
|
|
|
|
sta ZPDataOutPtr+1
|
2019-01-17 15:05:48 +00:00
|
|
|
|
lda IPCFG+S.NETCFG.DevFlags
|
2018-07-23 06:28:47 +00:00
|
|
|
|
and #S.DCB.NIC.FLAGS.IPOFFLOAD
|
2017-02-13 07:26:18 +00:00
|
|
|
|
bne .7
|
2019-10-23 15:12:58 +00:00
|
|
|
|
|
2018-11-06 16:31:13 +00:00
|
|
|
|
ldy #S.ETH.EII.TYPE
|
|
|
|
|
lda /S.ETH.EII.TYPE.IP
|
2021-05-19 12:44:47 +00:00
|
|
|
|
sta (ZPFrameOutPtr),y
|
2016-01-16 22:04:22 +00:00
|
|
|
|
iny
|
2018-11-06 16:31:13 +00:00
|
|
|
|
lda #S.ETH.EII.TYPE.IP
|
2017-01-31 16:40:37 +00:00
|
|
|
|
sta (ZPFrameOutPtr),y
|
2016-01-16 22:04:22 +00:00
|
|
|
|
|
2021-12-02 21:28:26 +00:00
|
|
|
|
ldy #S.IP.V.IHL
|
2016-01-16 22:04:22 +00:00
|
|
|
|
lda #$45
|
2017-01-31 16:40:37 +00:00
|
|
|
|
sta (ZPFrameOutPtr),y
|
|
|
|
|
* iny
|
|
|
|
|
* lda #$0
|
|
|
|
|
* sta (ZPFrameOutPtr),y
|
2017-02-13 07:26:18 +00:00
|
|
|
|
|
2021-05-19 12:44:47 +00:00
|
|
|
|
* ldy #S.IP.FRAGMENT.FLAGS
|
2017-01-31 16:40:37 +00:00
|
|
|
|
* sta (ZPFrameOutPtr),y
|
|
|
|
|
* iny
|
|
|
|
|
* sta (ZPFrameOutPtr),y
|
2017-02-13 07:26:18 +00:00
|
|
|
|
ldy #S.IP.IDENTIFICATION+1
|
|
|
|
|
lda IP.ID
|
|
|
|
|
ldx IP.ID+1
|
|
|
|
|
inc
|
|
|
|
|
bne .61
|
2019-10-23 15:12:58 +00:00
|
|
|
|
|
2017-02-13 07:26:18 +00:00
|
|
|
|
inx
|
2019-10-23 15:12:58 +00:00
|
|
|
|
|
2017-02-13 07:26:18 +00:00
|
|
|
|
stx IP.ID+1
|
2019-10-23 15:12:58 +00:00
|
|
|
|
|
2017-02-13 07:26:18 +00:00
|
|
|
|
.61 sta IP.ID
|
|
|
|
|
sta (ZPFrameOutPtr),y
|
|
|
|
|
dey
|
|
|
|
|
txa
|
|
|
|
|
sta (ZPFrameOutPtr),y
|
2016-01-16 22:04:22 +00:00
|
|
|
|
|
|
|
|
|
ldy #S.IP.TTL
|
|
|
|
|
lda #K.IP.TTL
|
2017-01-31 16:40:37 +00:00
|
|
|
|
sta (ZPFrameOutPtr),y
|
2021-05-19 12:44:47 +00:00
|
|
|
|
|
2017-02-13 07:26:18 +00:00
|
|
|
|
.7 ldy #S.IP.PROTOCOL
|
|
|
|
|
|
|
|
|
|
.8 lda #$ff
|
2017-01-31 16:40:37 +00:00
|
|
|
|
sta (ZPFrameOutPtr),y
|
2016-01-16 22:04:22 +00:00
|
|
|
|
.9 rts
|
|
|
|
|
*--------------------------------------
|
2019-07-07 20:48:57 +00:00
|
|
|
|
* clc Queue if fail
|
|
|
|
|
* sec DONT Queue if fail
|
|
|
|
|
*--------------------------------------
|
|
|
|
|
FRM.SendIP php
|
|
|
|
|
ldx #3 Copy SRC.IP even if IP offload
|
2016-04-18 20:16:54 +00:00
|
|
|
|
ldy #S.IP.SRC+3 for proper UDP/TCP CRC calculation
|
2019-10-05 17:24:41 +00:00
|
|
|
|
|
2016-03-20 22:16:01 +00:00
|
|
|
|
.1 lda IPCFG+S.IPCFG.IP,x
|
2021-05-19 12:44:47 +00:00
|
|
|
|
sta (ZPFrameOutPtr),y
|
2016-03-13 22:09:00 +00:00
|
|
|
|
dey
|
|
|
|
|
dex
|
2016-03-20 22:16:01 +00:00
|
|
|
|
bpl .1
|
2019-10-05 17:24:41 +00:00
|
|
|
|
|
2019-01-17 15:05:48 +00:00
|
|
|
|
lda IPCFG+S.NETCFG.DevFlags
|
2018-07-23 06:28:47 +00:00
|
|
|
|
and #S.DCB.NIC.FLAGS.IPOFFLOAD
|
2016-04-18 20:16:54 +00:00
|
|
|
|
bne .21
|
2019-10-05 17:24:41 +00:00
|
|
|
|
|
2016-01-16 22:04:22 +00:00
|
|
|
|
ldy #S.IP.TOTAL.LENGTH+1
|
2017-01-31 16:40:37 +00:00
|
|
|
|
lda ZPFrameOutLen
|
2016-01-16 22:04:22 +00:00
|
|
|
|
sec
|
2018-11-06 16:31:13 +00:00
|
|
|
|
sbc #S.ETH.EII
|
2017-01-31 16:40:37 +00:00
|
|
|
|
sta (ZPFrameOutPtr),y
|
2016-01-16 22:04:22 +00:00
|
|
|
|
dey
|
2017-01-31 16:40:37 +00:00
|
|
|
|
lda ZPFrameOutLen+1
|
2018-11-06 16:31:13 +00:00
|
|
|
|
sbc /S.ETH.EII
|
2017-01-31 16:40:37 +00:00
|
|
|
|
sta (ZPFrameOutPtr),y
|
2016-03-13 22:09:00 +00:00
|
|
|
|
lda #0
|
|
|
|
|
ldy #S.IP.HDR.CHECKSUM
|
2017-01-31 16:40:37 +00:00
|
|
|
|
sta (ZPFrameOutPtr),y
|
2016-03-13 22:09:00 +00:00
|
|
|
|
iny
|
2017-01-31 16:40:37 +00:00
|
|
|
|
sta (ZPFrameOutPtr),y
|
2018-09-25 06:25:32 +00:00
|
|
|
|
stz IP.CHECKSUM RESET IP CHECKSUM
|
2016-01-16 22:04:22 +00:00
|
|
|
|
stz IP.CHECKSUM+1
|
2016-03-13 22:09:00 +00:00
|
|
|
|
|
|
|
|
|
clc
|
2016-01-16 22:04:22 +00:00
|
|
|
|
|
2021-12-02 21:28:26 +00:00
|
|
|
|
ldy #S.IP.V.IHL
|
2019-10-05 17:24:41 +00:00
|
|
|
|
|
2016-03-13 22:09:00 +00:00
|
|
|
|
ldx #10 10 words for IP Header
|
2019-10-05 17:24:41 +00:00
|
|
|
|
|
2017-01-31 16:40:37 +00:00
|
|
|
|
.2 lda (ZPFrameOutPtr),y
|
2016-01-16 22:04:22 +00:00
|
|
|
|
adc IP.CHECKSUM
|
|
|
|
|
sta IP.CHECKSUM
|
2016-03-13 22:09:00 +00:00
|
|
|
|
|
|
|
|
|
iny
|
2017-01-31 16:40:37 +00:00
|
|
|
|
lda (ZPFrameOutPtr),y
|
2016-01-16 22:04:22 +00:00
|
|
|
|
adc IP.CHECKSUM+1
|
|
|
|
|
sta IP.CHECKSUM+1
|
2016-03-13 22:09:00 +00:00
|
|
|
|
iny
|
|
|
|
|
dex
|
2016-03-20 22:16:01 +00:00
|
|
|
|
bne .2
|
2019-10-05 17:24:41 +00:00
|
|
|
|
|
2016-03-13 22:09:00 +00:00
|
|
|
|
ldy #S.IP.HDR.CHECKSUM
|
2016-01-16 22:04:22 +00:00
|
|
|
|
lda IP.CHECKSUM
|
2016-03-13 22:09:00 +00:00
|
|
|
|
adc #0
|
2016-01-16 22:04:22 +00:00
|
|
|
|
eor #$FF
|
2017-01-31 16:40:37 +00:00
|
|
|
|
sta (ZPFrameOutPtr),y
|
2016-03-13 22:09:00 +00:00
|
|
|
|
iny
|
2016-01-16 22:04:22 +00:00
|
|
|
|
lda IP.CHECKSUM+1
|
2016-03-13 22:09:00 +00:00
|
|
|
|
adc #0
|
2016-01-16 22:04:22 +00:00
|
|
|
|
eor #$FF
|
2017-01-31 16:40:37 +00:00
|
|
|
|
sta (ZPFrameOutPtr),y
|
2016-03-13 22:09:00 +00:00
|
|
|
|
|
2016-04-18 20:16:54 +00:00
|
|
|
|
.21 ldy #S.IP.PROTOCOL
|
2017-01-31 16:40:37 +00:00
|
|
|
|
lda (ZPFrameOutPtr),y
|
2016-03-13 22:09:00 +00:00
|
|
|
|
cmp #S.IP.PROTOCOL.TCP
|
|
|
|
|
bne .3
|
2019-10-05 17:24:41 +00:00
|
|
|
|
|
2018-09-21 15:28:46 +00:00
|
|
|
|
jsr IP.ComputeTCPChecksum
|
2017-02-13 07:26:18 +00:00
|
|
|
|
bra .5
|
2019-10-05 17:24:41 +00:00
|
|
|
|
|
2016-03-13 22:09:00 +00:00
|
|
|
|
.3 cmp #S.IP.PROTOCOL.UDP
|
2016-03-20 22:16:01 +00:00
|
|
|
|
bne .4
|
2019-10-05 17:24:41 +00:00
|
|
|
|
|
2017-02-15 16:14:41 +00:00
|
|
|
|
lda ZPFrameOutLen
|
|
|
|
|
sec
|
2018-07-23 06:28:47 +00:00
|
|
|
|
sbc #S.IP
|
2017-02-15 16:14:41 +00:00
|
|
|
|
ldy #S.UDP.LENGTH+1
|
|
|
|
|
sta (ZPFrameOutPtr),y
|
|
|
|
|
lda ZPFrameOutLen+1
|
2018-07-23 06:28:47 +00:00
|
|
|
|
sbc /S.IP
|
2017-02-15 16:14:41 +00:00
|
|
|
|
dey
|
2019-07-07 20:48:57 +00:00
|
|
|
|
sta (ZPFrameOutPtr),y
|
2018-09-21 15:28:46 +00:00
|
|
|
|
jsr IP.ComputeUDPChecksum
|
2017-02-13 07:26:18 +00:00
|
|
|
|
bra .5
|
2019-10-05 17:24:41 +00:00
|
|
|
|
|
2017-02-13 07:26:18 +00:00
|
|
|
|
.4 cmp #S.IP.PROTOCOL.ICMP
|
2016-03-20 22:16:01 +00:00
|
|
|
|
bne .5
|
2019-10-05 17:24:41 +00:00
|
|
|
|
|
2018-09-21 15:28:46 +00:00
|
|
|
|
jsr IP.ComputeICMPChecksum
|
2019-10-05 17:24:41 +00:00
|
|
|
|
|
2019-01-17 15:05:48 +00:00
|
|
|
|
.5 lda IPCFG+S.NETCFG.DevFlags
|
2018-07-23 06:28:47 +00:00
|
|
|
|
and #S.DCB.NIC.FLAGS.ARPOFFLOAD
|
2017-02-13 07:26:18 +00:00
|
|
|
|
bne .6
|
2016-03-20 22:16:01 +00:00
|
|
|
|
|
|
|
|
|
jsr IP.SetDestMAC
|
|
|
|
|
bcs FRM.Queue
|
2021-05-19 12:44:47 +00:00
|
|
|
|
|
2018-08-08 15:13:37 +00:00
|
|
|
|
.6 jsr FRM.Send
|
2016-03-20 22:16:01 +00:00
|
|
|
|
bcs FRM.Queue
|
2019-10-05 17:24:41 +00:00
|
|
|
|
|
2019-06-17 06:35:54 +00:00
|
|
|
|
jsr FRM.Discard
|
2019-07-07 20:48:57 +00:00
|
|
|
|
|
|
|
|
|
plp
|
2019-06-17 06:35:54 +00:00
|
|
|
|
clc
|
|
|
|
|
rts
|
2016-03-27 21:06:56 +00:00
|
|
|
|
*--------------------------------------
|
2019-07-07 20:48:57 +00:00
|
|
|
|
FRM.Queue plp
|
2019-10-05 17:24:41 +00:00
|
|
|
|
bcs FRM.Discard DONT queue
|
|
|
|
|
|
2019-07-07 20:48:57 +00:00
|
|
|
|
ldy hFrameOut no hFrame, cannot queue for retry
|
|
|
|
|
beq FRM.Discard.9
|
2016-03-27 21:06:56 +00:00
|
|
|
|
|
|
|
|
|
ldx FRM.QUEUE.Head
|
|
|
|
|
inx
|
|
|
|
|
cpx #K.FRMQUEUE.SIZE
|
|
|
|
|
bne .1
|
2021-05-19 12:44:47 +00:00
|
|
|
|
|
2016-03-27 21:06:56 +00:00
|
|
|
|
ldx #0
|
2019-10-05 17:24:41 +00:00
|
|
|
|
|
2016-03-27 21:06:56 +00:00
|
|
|
|
.1 cpx FRM.QUEUE.Tail
|
2019-07-07 20:48:57 +00:00
|
|
|
|
beq FRM.Discard CS
|
2016-03-27 21:06:56 +00:00
|
|
|
|
ldy FRM.QUEUE.Head
|
|
|
|
|
stx FRM.QUEUE.Head
|
|
|
|
|
|
|
|
|
|
sta FRM.QUEUE.State,y
|
|
|
|
|
lda #K.FRMSEND.RETRY
|
|
|
|
|
sta FRM.QUEUE.Retry,y
|
2017-01-29 21:47:19 +00:00
|
|
|
|
lda hFrameOut
|
2016-03-27 21:06:56 +00:00
|
|
|
|
sta FRM.QUEUE.hMem,y
|
2018-07-23 15:28:42 +00:00
|
|
|
|
lda ZPFrameOutLen
|
2018-09-03 06:01:07 +00:00
|
|
|
|
sta FRM.QUEUE.LenL,y
|
2018-07-23 15:28:42 +00:00
|
|
|
|
lda ZPFrameOutLen+1
|
2018-09-03 06:01:07 +00:00
|
|
|
|
sta FRM.QUEUE.LenH,y
|
2019-07-07 20:48:57 +00:00
|
|
|
|
clc
|
|
|
|
|
.9 rts
|
2016-01-16 22:04:22 +00:00
|
|
|
|
*--------------------------------------
|
2019-06-17 06:35:54 +00:00
|
|
|
|
FRM.Discard lda hFrameOut
|
2019-07-07 20:48:57 +00:00
|
|
|
|
beq FRM.Discard.9
|
2019-10-05 17:24:41 +00:00
|
|
|
|
|
2019-06-17 06:35:54 +00:00
|
|
|
|
stz hFrameOut
|
2019-11-17 14:39:55 +00:00
|
|
|
|
>SYSCALL2 FreeMem
|
2019-10-05 17:24:41 +00:00
|
|
|
|
|
2019-07-07 20:48:57 +00:00
|
|
|
|
FRM.Discard.9 sec
|
2019-06-17 06:35:54 +00:00
|
|
|
|
rts
|
|
|
|
|
*--------------------------------------
|
2016-03-20 22:16:01 +00:00
|
|
|
|
FRM.Retry ldx FRM.QUEUE.Tail
|
|
|
|
|
|
2019-07-07 20:48:57 +00:00
|
|
|
|
.1 cpx FRM.QUEUE.Head
|
2018-07-24 06:24:23 +00:00
|
|
|
|
beq .8 Queue is empty, exit...
|
2021-12-02 21:28:26 +00:00
|
|
|
|
|
2019-07-07 20:48:57 +00:00
|
|
|
|
lda FRM.QUEUE.LenL,x
|
|
|
|
|
sta ZPFrameOutLen
|
|
|
|
|
lda FRM.QUEUE.LenH,x
|
|
|
|
|
sta ZPFrameOutLen+1
|
|
|
|
|
|
2016-03-20 22:16:01 +00:00
|
|
|
|
lda FRM.QUEUE.hMem,x
|
2019-05-05 17:15:37 +00:00
|
|
|
|
>SYSCALL2 GetMemPtr
|
2017-01-31 16:40:37 +00:00
|
|
|
|
>STYA ZPFrameOutPtr
|
2016-03-20 22:16:01 +00:00
|
|
|
|
ldx FRM.QUEUE.Tail
|
|
|
|
|
lda FRM.QUEUE.State,x
|
2018-09-03 06:01:07 +00:00
|
|
|
|
cmp #ERR.ARP.PENDING
|
2019-07-07 20:48:57 +00:00
|
|
|
|
bne .2
|
2018-09-03 06:01:07 +00:00
|
|
|
|
|
2016-03-20 22:16:01 +00:00
|
|
|
|
jsr IP.SetDestMAC Err is ARP or higher, retry getting MAC
|
2019-07-07 20:48:57 +00:00
|
|
|
|
bcs .3 still error getting dest MAC
|
2021-12-02 21:28:26 +00:00
|
|
|
|
|
2019-07-07 20:48:57 +00:00
|
|
|
|
.2 jsr FRM.Send try sending again to DRV
|
|
|
|
|
bcc .4
|
|
|
|
|
|
|
|
|
|
.3 ldx FRM.QUEUE.Tail
|
|
|
|
|
sta FRM.QUEUE.State,x save error...
|
2021-05-19 12:44:47 +00:00
|
|
|
|
dec FRM.QUEUE.Retry,x
|
2016-03-20 22:16:01 +00:00
|
|
|
|
bne .8 exit....until next run!
|
2021-05-19 12:44:47 +00:00
|
|
|
|
|
2019-07-07 20:48:57 +00:00
|
|
|
|
.4 ldx FRM.QUEUE.Tail
|
|
|
|
|
lda FRM.QUEUE.hMem,x Success,or max retry, discard entry
|
2016-03-20 22:16:01 +00:00
|
|
|
|
inx
|
|
|
|
|
cpx #K.FRMQUEUE.SIZE
|
|
|
|
|
bne .5
|
2019-11-17 14:39:55 +00:00
|
|
|
|
|
2016-03-20 22:16:01 +00:00
|
|
|
|
ldx #0
|
|
|
|
|
.5 stx FRM.QUEUE.Tail
|
2019-07-07 20:48:57 +00:00
|
|
|
|
>SYSCALL2 FreeMem
|
|
|
|
|
bra FRM.Retry
|
|
|
|
|
|
2016-03-20 22:16:01 +00:00
|
|
|
|
.8 rts
|
2016-01-16 22:04:22 +00:00
|
|
|
|
*--------------------------------------
|
2019-01-16 14:37:21 +00:00
|
|
|
|
FRM.Send ldx #3
|
2019-10-05 17:24:41 +00:00
|
|
|
|
|
2019-01-16 14:37:21 +00:00
|
|
|
|
.1 lda ZPFrameOutPtr,x Get Frame Ptr & Len
|
|
|
|
|
sta IOCTL+S.IOCTL.BUFPTR,x
|
|
|
|
|
dex
|
|
|
|
|
bpl .1
|
2021-05-19 12:44:47 +00:00
|
|
|
|
|
2020-03-23 07:08:27 +00:00
|
|
|
|
FRM.Send.IOCTL >PUSHB IPCFG+S.NETCFG.DevID
|
2019-01-16 14:37:21 +00:00
|
|
|
|
>PUSHBI IOCTL.WRITE
|
2020-03-23 07:08:27 +00:00
|
|
|
|
>PUSHW L.IOCTL
|
2019-05-05 17:15:37 +00:00
|
|
|
|
>SYSCALL2 IOCTL
|
2018-05-24 15:21:38 +00:00
|
|
|
|
rts
|
|
|
|
|
*--------------------------------------
|
2019-11-17 14:39:55 +00:00
|
|
|
|
FRM.DiscardIn lda hFrameIn
|
|
|
|
|
beq .8
|
2021-12-02 21:28:26 +00:00
|
|
|
|
|
2019-11-17 14:39:55 +00:00
|
|
|
|
stz hFrameIn
|
|
|
|
|
|
|
|
|
|
>SYSCALL2 FreeMem
|
2021-12-02 21:28:26 +00:00
|
|
|
|
|
2019-11-17 14:39:55 +00:00
|
|
|
|
.8 clc
|
|
|
|
|
rts
|
|
|
|
|
*--------------------------------------
|
2016-01-16 22:04:22 +00:00
|
|
|
|
MAN
|
2020-06-07 08:06:51 +00:00
|
|
|
|
SAVE usr/src/lib/libtcpip.s.frm
|
|
|
|
|
LOAD usr/src/lib/libtcpip.s
|
2016-01-16 22:04:22 +00:00
|
|
|
|
ASM
|