mirror of
https://github.com/dschmenk/PLASMA.git
synced 2025-02-09 19:31:13 +00:00
Fix UDP header len for UTHERNET
This commit is contained in:
parent
8c0e66daf8
commit
fb1f08bcc9
@ -37,130 +37,128 @@ byte[6] utherMAC = $00,$0A,$99,$1E,$02,$A0
|
||||
// Defines for ASM routines
|
||||
//
|
||||
asm equates
|
||||
!SOURCE "vmsrc/plvmzp.inc"
|
||||
!SOURCE "vmsrc/plvmzp.inc"
|
||||
end
|
||||
//
|
||||
// Uthernet I/O functions
|
||||
//
|
||||
asm _pokeiow(val)#0
|
||||
LDA ESTKL,X
|
||||
LDA ESTKL,X
|
||||
end
|
||||
asm _pokeiowl
|
||||
STA $C000
|
||||
LDA ESTKH,X
|
||||
STA $C000
|
||||
LDA ESTKH,X
|
||||
end
|
||||
asm _pokeiowh
|
||||
STA $C000
|
||||
INX
|
||||
RTS
|
||||
STA $C000
|
||||
INX
|
||||
RTS
|
||||
end
|
||||
//
|
||||
// PEEK BYTE FROM I/O SPACE
|
||||
// _peekio()
|
||||
//
|
||||
asm _peekio#1
|
||||
DEX
|
||||
DEX
|
||||
end
|
||||
asm _peekiol
|
||||
LDA $C000
|
||||
STA ESTKL,X
|
||||
LDA #$00
|
||||
STA ESTKH,X
|
||||
RTS
|
||||
LDA $C000
|
||||
STA ESTKL,X
|
||||
LDA #$00
|
||||
STA ESTKH,X
|
||||
RTS
|
||||
end
|
||||
//
|
||||
// PEEK WORD FROM I/O SPACE
|
||||
// _peekiow()
|
||||
//
|
||||
asm _peekiow#1
|
||||
DEX
|
||||
DEX
|
||||
end
|
||||
asm _peekiowl
|
||||
LDA $C000
|
||||
STA ESTKL,X
|
||||
LDA $C000
|
||||
STA ESTKL,X
|
||||
end
|
||||
asm _peekiowh
|
||||
LDA $C000
|
||||
STA ESTKH,X
|
||||
RTS
|
||||
LDA $C000
|
||||
STA ESTKH,X
|
||||
RTS
|
||||
end
|
||||
//
|
||||
// WRITE FRAME DATA INTO I/O SPACE
|
||||
// pokefrm(BUF, LEN)
|
||||
//
|
||||
asm pokefrm(buf, len)#1
|
||||
LDY #$00
|
||||
LDA ESTKL+1,X
|
||||
STA SRCL
|
||||
LDA ESTKH+1,X
|
||||
STA SRCH
|
||||
LSR ESTKH,X ; CONVERT BYTE LEN TO WORD LEN
|
||||
LDA ESTKL,X
|
||||
ROR
|
||||
ADC #$00
|
||||
STA ESTKL,X
|
||||
BEQ +
|
||||
!BYTE $A9
|
||||
- CLC
|
||||
INC ESTKH,X
|
||||
+ BCS -
|
||||
POKELP LDA (SRC),Y
|
||||
LDY #$00
|
||||
LDA ESTKL+1,X
|
||||
STA SRCL
|
||||
LDA ESTKH+1,X
|
||||
STA SRCH
|
||||
LSR ESTKH,X ; CONVERT BYTE LEN TO WORD LEN
|
||||
LDA ESTKL,X
|
||||
ROR
|
||||
ADC #$00
|
||||
STA ESTKL,X
|
||||
BEQ +
|
||||
INC ESTKH,X
|
||||
+ BCC POKELP
|
||||
INC ESTKH,X
|
||||
POKELP LDA (SRC),Y
|
||||
end
|
||||
asm _pokefrml
|
||||
STA $C000
|
||||
INY
|
||||
LDA (SRC),Y
|
||||
STA $C000
|
||||
INY
|
||||
LDA (SRC),Y
|
||||
end
|
||||
asm _pokefrmh
|
||||
STA $C000
|
||||
INY
|
||||
BNE +
|
||||
INC SRCH
|
||||
+ DEC ESTKL,X
|
||||
BNE POKELP
|
||||
DEC ESTKH,X
|
||||
BNE POKELP
|
||||
INX
|
||||
RTS
|
||||
STA $C000
|
||||
INY
|
||||
BNE +
|
||||
INC SRCH
|
||||
+ DEC ESTKL,X
|
||||
BNE POKELP
|
||||
DEC ESTKH,X
|
||||
BNE POKELP
|
||||
INX
|
||||
RTS
|
||||
end
|
||||
//
|
||||
// READ FRAME DATA FROM I/O SPACE
|
||||
// peekfrm(BUF, LEN)
|
||||
//
|
||||
asm peekfrm(buf, len)#1
|
||||
LDY #$00
|
||||
LDA ESTKL+1,X
|
||||
STA DSTL
|
||||
LDA ESTKH+1,X
|
||||
STA DSTH
|
||||
LSR ESTKH,X ; CONVERT BYTE LEN TO WORD LEN
|
||||
LDA ESTKL,X
|
||||
ROR
|
||||
ADC #$00
|
||||
STA ESTKL,X
|
||||
BEQ +
|
||||
!BYTE $A9
|
||||
- CLC
|
||||
INC ESTKH,X
|
||||
+ BCS -
|
||||
LDY #$00
|
||||
LDA ESTKL+1,X
|
||||
STA DSTL
|
||||
LDA ESTKH+1,X
|
||||
STA DSTH
|
||||
LSR ESTKH,X ; CONVERT BYTE LEN TO WORD LEN
|
||||
LDA ESTKL,X
|
||||
ROR
|
||||
ADC #$00
|
||||
STA ESTKL,X
|
||||
BEQ +
|
||||
INC ESTKH,X
|
||||
+ BCC PEEKLP
|
||||
INC ESTKH,X
|
||||
end
|
||||
asm _peekfrml
|
||||
PEEKLP LDA $C000
|
||||
STA (DST),Y
|
||||
INY
|
||||
PEEKLP LDA $C000
|
||||
STA (DST),Y
|
||||
INY
|
||||
end
|
||||
asm _peekfrmh
|
||||
LDA $C000
|
||||
STA (DST),Y
|
||||
INY
|
||||
BNE +
|
||||
INC DSTH
|
||||
+ DEC ESTKL,X
|
||||
BNE PEEKLP
|
||||
DEC ESTKH,X
|
||||
BNE PEEKLP
|
||||
EXPSW INX
|
||||
RTS
|
||||
LDA $C000
|
||||
STA (DST),Y
|
||||
INY
|
||||
BNE +
|
||||
INC DSTH
|
||||
+ DEC ESTKL,X
|
||||
BNE PEEKLP
|
||||
DEC ESTKH,X
|
||||
BNE PEEKLP
|
||||
EXPSW INX
|
||||
RTS
|
||||
end
|
||||
def pokeiow(io, data)#0
|
||||
_pokeiowl.1 = io
|
||||
@ -232,10 +230,10 @@ for slot = $90 to $F0 step $10
|
||||
pokepreg($0158, utherMAC:0) // MAC addr
|
||||
pokepreg($015A, utherMAC:2) // MAC addr
|
||||
pokepreg($015C, utherMAC:4) // MAC addr
|
||||
pokepreg($0102, $0100) // Recv cfg
|
||||
pokepreg($0104, $0D00) // Recv ctrl
|
||||
pokepreg($0106, $8200) // Xmit cfg
|
||||
pokepreg($0112, $00C0) // Line ctrl
|
||||
pokepreg($0102, $0100) // Recv cfg
|
||||
pokepreg($0104, $0D00) // Recv ctrl
|
||||
pokepreg($0106, $8200) // Xmit cfg
|
||||
pokepreg($0112, $00C0) // Line ctrl
|
||||
//
|
||||
// Install etherip driver
|
||||
//
|
||||
|
@ -499,7 +499,7 @@ def etherServiceIP
|
||||
lclport = swab(rxptr=>udp_dst)
|
||||
for i = 1 to MAX_UDP_NOTIFIES
|
||||
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
|
||||
fin
|
||||
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
|
Loading…
x
Reference in New Issue
Block a user