mirror of
https://github.com/dschmenk/PLASMA.git
synced 2025-08-09 01:25:00 +00:00
Fix UDP header len for UTHERNET
This commit is contained in:
@@ -37,130 +37,128 @@ byte[6] utherMAC = $00,$0A,$99,$1E,$02,$A0
|
|||||||
// Defines for ASM routines
|
// Defines for ASM routines
|
||||||
//
|
//
|
||||||
asm equates
|
asm equates
|
||||||
!SOURCE "vmsrc/plvmzp.inc"
|
!SOURCE "vmsrc/plvmzp.inc"
|
||||||
end
|
end
|
||||||
//
|
//
|
||||||
// Uthernet I/O functions
|
// Uthernet I/O functions
|
||||||
//
|
//
|
||||||
asm _pokeiow(val)#0
|
asm _pokeiow(val)#0
|
||||||
LDA ESTKL,X
|
LDA ESTKL,X
|
||||||
end
|
end
|
||||||
asm _pokeiowl
|
asm _pokeiowl
|
||||||
STA $C000
|
STA $C000
|
||||||
LDA ESTKH,X
|
LDA ESTKH,X
|
||||||
end
|
end
|
||||||
asm _pokeiowh
|
asm _pokeiowh
|
||||||
STA $C000
|
STA $C000
|
||||||
INX
|
INX
|
||||||
RTS
|
RTS
|
||||||
end
|
end
|
||||||
//
|
//
|
||||||
// PEEK BYTE FROM I/O SPACE
|
// PEEK BYTE FROM I/O SPACE
|
||||||
// _peekio()
|
// _peekio()
|
||||||
//
|
//
|
||||||
asm _peekio#1
|
asm _peekio#1
|
||||||
DEX
|
DEX
|
||||||
end
|
end
|
||||||
asm _peekiol
|
asm _peekiol
|
||||||
LDA $C000
|
LDA $C000
|
||||||
STA ESTKL,X
|
STA ESTKL,X
|
||||||
LDA #$00
|
LDA #$00
|
||||||
STA ESTKH,X
|
STA ESTKH,X
|
||||||
RTS
|
RTS
|
||||||
end
|
end
|
||||||
//
|
//
|
||||||
// PEEK WORD FROM I/O SPACE
|
// PEEK WORD FROM I/O SPACE
|
||||||
// _peekiow()
|
// _peekiow()
|
||||||
//
|
//
|
||||||
asm _peekiow#1
|
asm _peekiow#1
|
||||||
DEX
|
DEX
|
||||||
end
|
end
|
||||||
asm _peekiowl
|
asm _peekiowl
|
||||||
LDA $C000
|
LDA $C000
|
||||||
STA ESTKL,X
|
STA ESTKL,X
|
||||||
end
|
end
|
||||||
asm _peekiowh
|
asm _peekiowh
|
||||||
LDA $C000
|
LDA $C000
|
||||||
STA ESTKH,X
|
STA ESTKH,X
|
||||||
RTS
|
RTS
|
||||||
end
|
end
|
||||||
//
|
//
|
||||||
// WRITE FRAME DATA INTO I/O SPACE
|
// WRITE FRAME DATA INTO I/O SPACE
|
||||||
// pokefrm(BUF, LEN)
|
// pokefrm(BUF, LEN)
|
||||||
//
|
//
|
||||||
asm pokefrm(buf, len)#1
|
asm pokefrm(buf, len)#1
|
||||||
LDY #$00
|
LDY #$00
|
||||||
LDA ESTKL+1,X
|
LDA ESTKL+1,X
|
||||||
STA SRCL
|
STA SRCL
|
||||||
LDA ESTKH+1,X
|
LDA ESTKH+1,X
|
||||||
STA SRCH
|
STA SRCH
|
||||||
LSR ESTKH,X ; CONVERT BYTE LEN TO WORD LEN
|
LSR ESTKH,X ; CONVERT BYTE LEN TO WORD LEN
|
||||||
LDA ESTKL,X
|
LDA ESTKL,X
|
||||||
ROR
|
ROR
|
||||||
ADC #$00
|
ADC #$00
|
||||||
STA ESTKL,X
|
STA ESTKL,X
|
||||||
BEQ +
|
BEQ +
|
||||||
!BYTE $A9
|
INC ESTKH,X
|
||||||
- CLC
|
+ BCC POKELP
|
||||||
INC ESTKH,X
|
INC ESTKH,X
|
||||||
+ BCS -
|
POKELP LDA (SRC),Y
|
||||||
POKELP LDA (SRC),Y
|
|
||||||
end
|
end
|
||||||
asm _pokefrml
|
asm _pokefrml
|
||||||
STA $C000
|
STA $C000
|
||||||
INY
|
INY
|
||||||
LDA (SRC),Y
|
LDA (SRC),Y
|
||||||
end
|
end
|
||||||
asm _pokefrmh
|
asm _pokefrmh
|
||||||
STA $C000
|
STA $C000
|
||||||
INY
|
INY
|
||||||
BNE +
|
BNE +
|
||||||
INC SRCH
|
INC SRCH
|
||||||
+ DEC ESTKL,X
|
+ DEC ESTKL,X
|
||||||
BNE POKELP
|
BNE POKELP
|
||||||
DEC ESTKH,X
|
DEC ESTKH,X
|
||||||
BNE POKELP
|
BNE POKELP
|
||||||
INX
|
INX
|
||||||
RTS
|
RTS
|
||||||
end
|
end
|
||||||
//
|
//
|
||||||
// READ FRAME DATA FROM I/O SPACE
|
// READ FRAME DATA FROM I/O SPACE
|
||||||
// peekfrm(BUF, LEN)
|
// peekfrm(BUF, LEN)
|
||||||
//
|
//
|
||||||
asm peekfrm(buf, len)#1
|
asm peekfrm(buf, len)#1
|
||||||
LDY #$00
|
LDY #$00
|
||||||
LDA ESTKL+1,X
|
LDA ESTKL+1,X
|
||||||
STA DSTL
|
STA DSTL
|
||||||
LDA ESTKH+1,X
|
LDA ESTKH+1,X
|
||||||
STA DSTH
|
STA DSTH
|
||||||
LSR ESTKH,X ; CONVERT BYTE LEN TO WORD LEN
|
LSR ESTKH,X ; CONVERT BYTE LEN TO WORD LEN
|
||||||
LDA ESTKL,X
|
LDA ESTKL,X
|
||||||
ROR
|
ROR
|
||||||
ADC #$00
|
ADC #$00
|
||||||
STA ESTKL,X
|
STA ESTKL,X
|
||||||
BEQ +
|
BEQ +
|
||||||
!BYTE $A9
|
INC ESTKH,X
|
||||||
- CLC
|
+ BCC PEEKLP
|
||||||
INC ESTKH,X
|
INC ESTKH,X
|
||||||
+ BCS -
|
|
||||||
end
|
end
|
||||||
asm _peekfrml
|
asm _peekfrml
|
||||||
PEEKLP LDA $C000
|
PEEKLP LDA $C000
|
||||||
STA (DST),Y
|
STA (DST),Y
|
||||||
INY
|
INY
|
||||||
end
|
end
|
||||||
asm _peekfrmh
|
asm _peekfrmh
|
||||||
LDA $C000
|
LDA $C000
|
||||||
STA (DST),Y
|
STA (DST),Y
|
||||||
INY
|
INY
|
||||||
BNE +
|
BNE +
|
||||||
INC DSTH
|
INC DSTH
|
||||||
+ DEC ESTKL,X
|
+ DEC ESTKL,X
|
||||||
BNE PEEKLP
|
BNE PEEKLP
|
||||||
DEC ESTKH,X
|
DEC ESTKH,X
|
||||||
BNE PEEKLP
|
BNE PEEKLP
|
||||||
EXPSW INX
|
EXPSW INX
|
||||||
RTS
|
RTS
|
||||||
end
|
end
|
||||||
def pokeiow(io, data)#0
|
def pokeiow(io, data)#0
|
||||||
_pokeiowl.1 = io
|
_pokeiowl.1 = io
|
||||||
@@ -232,10 +230,10 @@ for slot = $90 to $F0 step $10
|
|||||||
pokepreg($0158, utherMAC:0) // MAC addr
|
pokepreg($0158, utherMAC:0) // MAC addr
|
||||||
pokepreg($015A, utherMAC:2) // MAC addr
|
pokepreg($015A, utherMAC:2) // MAC addr
|
||||||
pokepreg($015C, utherMAC:4) // MAC addr
|
pokepreg($015C, utherMAC:4) // MAC addr
|
||||||
pokepreg($0102, $0100) // Recv cfg
|
pokepreg($0102, $0100) // Recv cfg
|
||||||
pokepreg($0104, $0D00) // Recv ctrl
|
pokepreg($0104, $0D00) // Recv ctrl
|
||||||
pokepreg($0106, $8200) // Xmit cfg
|
pokepreg($0106, $8200) // Xmit cfg
|
||||||
pokepreg($0112, $00C0) // Line ctrl
|
pokepreg($0112, $00C0) // Line ctrl
|
||||||
//
|
//
|
||||||
// Install etherip driver
|
// Install etherip driver
|
||||||
//
|
//
|
||||||
|
@@ -499,7 +499,7 @@ def etherServiceIP
|
|||||||
lclport = swab(rxptr=>udp_dst)
|
lclport = swab(rxptr=>udp_dst)
|
||||||
for i = 1 to MAX_UDP_NOTIFIES
|
for i = 1 to MAX_UDP_NOTIFIES
|
||||||
if port=>notify_port == lclport
|
if port=>notify_port == lclport
|
||||||
port=>notify_func(@iphdr=>ip_src,swab(rxptr=>udp_src),rxptr+t_udphdr,swab(rxptr=>udp_len),port=>notify_parm)
|
port=>notify_func(@iphdr=>ip_src,swab(rxptr=>udp_src),rxptr+t_udphdr,swab(rxptr=>udp_len)-t_udphdr,port=>notify_parm)
|
||||||
break
|
break
|
||||||
fin
|
fin
|
||||||
port = port + t_notify
|
port = port + t_notify
|
||||||
|
39
src/tftprel
Executable file
39
src/tftprel
Executable file
@@ -0,0 +1,39 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# Core VM, CMDSYS, JITC files
|
||||||
|
echo "PLASMA.SYSTEM"; atftp $1 --put -l rel/apple/PLASMA.SYSTEM#FF2000 -r PLASMA.SYSTEM#FF2000
|
||||||
|
echo "PLVM.128"; atftp $1 --put -l rel/apple/PLVM.128#FF2000 -r PLVM.128#FF2000
|
||||||
|
echo "PLVM16"; atftp $1 --put -l rel/apple/PLVM16#FF2000 -r PLVM16#FF2000
|
||||||
|
echo "CMD"; atftp $1 --put -l rel/apple/CMD#061000 -r CMD#061000
|
||||||
|
echo "CMD128"; atftp $1 --put -l rel/apple/CMD128#061000 -r CMD128#061000
|
||||||
|
echo "SYS/JIT"; atftp $1 --put -l rel/apple/JIT#FE1000 -r SYS/JIT#FE1000
|
||||||
|
echo "SYS/JIT16"; atftp $1 --put -l rel/apple/JIT16#FE1000 -r SYS/JIT16#FE1000
|
||||||
|
echo "SYS/JITUNE"; atftp $1 --put -l rel/apple/JITUNE#FE1000 -r SYS/JITUNE#FE1000
|
||||||
|
|
||||||
|
# Core libraries
|
||||||
|
echo "SYS/ARGS"; atftp $1 --put -l rel/ARGS#FE1000 -r SYS/ARGS#FE1000
|
||||||
|
echo "SYS/DHCP"; atftp $1 --put -l rel/DHCP#FE1000 -r SYS/DHCP#FE1000
|
||||||
|
echo "SYS/ED"; atftp $1 --put -l rel/ED#FE1000 -r SYS/ED#FE1000
|
||||||
|
echo "SYS/ETHERIP"; atftp $1 --put -l rel/ETHERIP#FE1000 -r SYS/ETHERIP#FE1000
|
||||||
|
echo "SYS/FIBER"; atftp $1 --put -l rel/FIBER#FE1000 -r SYS/FIBER#FE1000
|
||||||
|
echo "SYS/FPSTR"; atftp $1 --put -l rel/FPSTR#FE1000 -r SYS/FPSTR#FE1000
|
||||||
|
echo "SYS/FPU"; atftp $1 --put -l rel/FPU#FE1000 -r SYS/FPU#FE1000
|
||||||
|
echo "SYS/INET"; atftp $1 --put -l rel/INET#FE1000 -r SYS/INET#FE1000
|
||||||
|
echo "SYS/LONGJUMP"; atftp $1 --put -l rel/LONGJMP#FE1000 -r SYS/LONGJMP#FE1000
|
||||||
|
echo "SYS/LZ4"; atftp $1 --put -l rel/LZ4#FE1000 -r SYS/LZ4#FE1000
|
||||||
|
echo "SYS/MEMMGR"; atftp $1 --put -l rel/MEMMGR#FE1000 -r SYS/MEMMGR#FE1000
|
||||||
|
echo "SYS/SANE"; atftp $1 --put -l rel/SANE#FE1000 -r SYS/SANE#FE1000
|
||||||
|
echo "SYS/CONIO"; atftp $1 --put -l rel/apple/CONIO#FE1000 -r SYS/CONIO#FE1000
|
||||||
|
echo "SYS/DGR"; atftp $1 --put -l rel/apple/DGR#FE1000 -r SYS/DGR#FE1000
|
||||||
|
echo "SYS/FILEIO"; atftp $1 --put -l rel/apple/FILEIO#FE1000 -r SYS/FILEIO#FE1000
|
||||||
|
echo "SYS/GRAFIX"; atftp $1 --put -l rel/apple/GRAFIX#FE1000 -r SYS/GRAFIX#FE1000
|
||||||
|
echo "SYS/JOYBUZZ"; atftp $1 --put -l rel/apple/JOYBUZZ#FE1000 -r SYS/JOYBUZZ#FE1000
|
||||||
|
echo "SYS/MON"; atftp $1 --put -l rel/apple/MON#FE1000 -r SYS/MON#FE1000
|
||||||
|
echo "SYS/PORTIO"; atftp $1 --put -l rel/apple/PORTIO#FE1000 -r SYS/PORTIO#FE1000
|
||||||
|
echo "SYS/SPIPORT"; atftp $1 --put -l rel/apple/SPIPORT#FE1000 -r SYS/SPIPORT#FE1000
|
||||||
|
echo "SYS/UTHERNET2";atftp $1 --put -l rel/apple/UTHERNET2#FE1000 -r SYS/UTHERNET2#FE1000
|
||||||
|
echo "SYS/UTHERNET"; atftp $1 --put -l rel/apple/UTHERNET#FE1000 -r SYS/UTHERNET#FE1000
|
||||||
|
|
||||||
|
# Build tools
|
||||||
|
echo "BLD/PLASM"; atftp $1 --put -l rel/PLASM#FE1000 -r BLD/PLASM#FE1000
|
||||||
|
echo "BLD/CODEOPT"; atftp $1 --put -l rel/CODEOPT#FE1000 -r BLD/CODEOPT#FE1000
|
Reference in New Issue
Block a user