mirror of
https://github.com/A2osX/A2osX.git
synced 2024-11-28 10:52:33 +00:00
160 lines
2.7 KiB
Plaintext
160 lines
2.7 KiB
Plaintext
NEW
|
||
AUTO 3,1
|
||
*--------------------------------------
|
||
FRM.NewDDP >STYA ZPDataOutLen
|
||
|
||
lda ZPDataOutLen
|
||
clc
|
||
adc #S.DDP2
|
||
sta ZPFrameOutLen
|
||
tay
|
||
|
||
lda ZPDataOutLen+1
|
||
adc /S.DDP2
|
||
sta ZPFrameOutLen+1
|
||
bne .10
|
||
|
||
cpy #60
|
||
bcs .10
|
||
|
||
ldy #60
|
||
|
||
.10 >SYSCALL2 GetMem
|
||
bcs .9
|
||
|
||
>STYA ZPFrameOutPtr
|
||
stx hFrameOut
|
||
|
||
lda ZPFrameOutLen
|
||
sec
|
||
sbc #S.ETH.802.2.LLC
|
||
ldy #S.ETH.802.3.LENGTH+1
|
||
sta (ZPFrameOutPtr),y
|
||
|
||
lda ZPFrameOutLen+1
|
||
sbc /S.ETH.802.2.LLC
|
||
dey
|
||
sta (ZPFrameOutPtr),y
|
||
|
||
ldx #DDP.LLC.L-1
|
||
ldy #S.ETH.802.2.LLC+DDP.LLC.L-1
|
||
|
||
.1 lda DDP.LLC,x
|
||
sta (ZPFrameOutPtr),y
|
||
dey
|
||
dex
|
||
bpl .1
|
||
|
||
lda ZPFrameOutLen
|
||
sec
|
||
sbc #S.ETH.SNAP
|
||
ldy #S.DDP2.DATALEN+1
|
||
sta (ZPFrameOutPtr),y
|
||
lda ZPFrameOutLen+1
|
||
sbc /S.ETH.SNAP
|
||
dey
|
||
sta (ZPFrameOutPtr),y
|
||
|
||
ldy #S.DDP2.CHECKSUM
|
||
lda #0
|
||
sta (ZPFrameOutPtr),y
|
||
iny
|
||
sta (ZPFrameOutPtr),y
|
||
|
||
lda hFrameOut
|
||
|
||
clc
|
||
|
||
.9 rts
|
||
*--------------------------------------
|
||
FRM.SendDDP ldy #S.DDP2.SRC.NET
|
||
lda ETKCFG+S.ETKCFG.NetID+1
|
||
sta (ZPFrameOutPtr),y
|
||
iny
|
||
lda ETKCFG+S.ETKCFG.NetID
|
||
sta (ZPFrameOutPtr),y
|
||
|
||
ldy #S.DDP2.SRC.NOD
|
||
lda ETKCFG+S.ETKCFG.NodID
|
||
sta (ZPFrameOutPtr),y
|
||
|
||
ldy #S.DDP2.DST.NOD
|
||
lda (ZPFrameOutPtr),y
|
||
beq .10 DST.NOD = 0 : any router
|
||
|
||
cmp #$FF Broadcast
|
||
bne FRM.SendAARP
|
||
|
||
.10 ldy #S.DDP2.DST.NET
|
||
lda (ZPFrameOutPtr),y
|
||
iny
|
||
ora (ZPFrameOutPtr),y
|
||
bne .2
|
||
|
||
ldy #5
|
||
|
||
.1 lda MAC.BROADCAST,y
|
||
sta (ZPFrameOutPtr),y
|
||
dey
|
||
bpl .1
|
||
|
||
bra FRM.Send
|
||
|
||
.2 ldy #5
|
||
|
||
.3 lda ETKCFG+S.ETKCFG.MCAddress+1,y
|
||
sta (ZPFrameOutPtr),y
|
||
dey
|
||
bpl .3
|
||
|
||
bra FRM.Send
|
||
|
||
FRM.SendAARP >DEBUG
|
||
*--------------------------------------
|
||
FRM.Send ldx #3
|
||
|
||
.1 lda ZPFrameOutPtr,x Get Frame Ptr & Len
|
||
sta IOCTL+S.IOCTL.BUFPTR,x
|
||
dex
|
||
bpl .1
|
||
|
||
lda IOCTL+S.IOCTL.BYTECNT+1
|
||
bne FRM.Send.IOCTL
|
||
|
||
lda #60
|
||
cmp IOCTL+S.IOCTL.BYTECNT
|
||
bcc FRM.Send.IOCTL
|
||
|
||
sta IOCTL+S.IOCTL.BYTECNT
|
||
|
||
FRM.Send.IOCTL >PUSHB ETKCFG+S.NETCFG.DevID
|
||
>PUSHBI IOCTL.WRITE
|
||
>PUSHW L.IOCTL
|
||
>SYSCALL2 IOCTL
|
||
rts
|
||
*--------------------------------------
|
||
FRM.DiscardIn lda hFrameIn
|
||
beq .8
|
||
|
||
stz hFrameIn
|
||
|
||
>SYSCALL2 FreeMem
|
||
|
||
.8 clc
|
||
rts
|
||
*--------------------------------------
|
||
FRM.DiscardOut lda hFrameOut
|
||
beq .8
|
||
|
||
stz hFrameOut
|
||
|
||
>SYSCALL2 FreeMem
|
||
|
||
.8 sec
|
||
rts
|
||
*--------------------------------------
|
||
MAN
|
||
SAVE usr/src/lib/libetalk.s.frm
|
||
LOAD usr/src/lib/libetalk.s
|
||
ASM
|