diff --git a/src/libsrc/apple/uthernet.pla b/src/libsrc/apple/uthernet.pla index 58c627e..8345cf6 100644 --- a/src/libsrc/apple/uthernet.pla +++ b/src/libsrc/apple/uthernet.pla @@ -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 // diff --git a/src/libsrc/etherip.pla b/src/libsrc/etherip.pla index bd99b3d..3765486 100644 --- a/src/libsrc/etherip.pla +++ b/src/libsrc/etherip.pla @@ -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 diff --git a/src/tftprel b/src/tftprel new file mode 100755 index 0000000..e63d575 --- /dev/null +++ b/src/tftprel @@ -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