jonnosan wrote:
In the NinjaNet photos I can see a little cluster of resistors and capacitors - do I need those as well?
Yes. That's the voltage conversion circuit that gives you 3.3 for the wiznet module. You can follow the standard instructions for the 8bb board. That's what I did, anyway.
One thing I've found very useful in early development is the way I can switch IO1 and IO2 on my cart port expander. The NinjaNet proto uses IO1, but I figure any code for this should have a constant for base address. That said, here are some constants I plugged in from the docs (DASM format, using socket bases) The macros at the end are outdated - the current revision works more like Steve Judd's print routine. Below that is a very early version of the telnet client. (Also DASM format) Keep in mind this is the sloppy first-round stuff I did when we first got the protos going back in May. A better lib is forthcoming, but it's not polished enough yet. I'm posting this solely to help anyone who's wanting a leg up on this to get started. I especially advise against using my readblock and writeblock from this code snippet, they're heavily UN-optimized.
wiznet.inc:
Code:
WIZNET_BASE = $DF00
WIZNET_TX_BASE = $4000
WIZNET_RX_BASE = $6000
WIZNET_ADDR_HI = WIZNET_BASE+1
WIZNET_ADDR_LO = WIZNET_BASE+2
WIZNET_DATA = WIZNET_BASE+3
WIZNET_MR = $0000 ;Mode Register
WIZNET_GAR0 = $0001 ;Gateway Address Byte 0
WIZNET_GAR1 = $0002 ;Gateway Address Byte 1
WIZNET_GAR2 = $0003 ;Gateway Address Byte 2
WIZNET_GAR3 = $0004 ;Gateway Address Byte 3
WIZNET_SUBR0 = $0005 ;Subnet Mask Address 0
WIZNET_SUBR1 = $0006 ;Subnet Mask Address 1
WIZNET_SUBR2 = $0007 ;Subnet Mask Address 2
WIZNET_SUBR3 = $0008 ;Subnet Mask Address 3
WIZNET_SHAR0 = $0009 ;Local MAC Address 0
WIZNET_SHAR1 = $000A ;Local MAC Address 1
WIZNET_SHAR2 = $000B ;Local MAC Address 2
WIZNET_SHAR3 = $000C ;Local MAC Address 3
WIZNET_SHAR4 = $000D ;Local MAC Address 4
WIZNET_SHAR5 = $000E ;Local MAC Address 5
WIZNET_SIPR0 = $000F ;Source IP Address 0
WIZNET_SIPR1 = $0010 ;Source IP Address 0
WIZNET_SIPR2 = $0011 ;Source IP Address 0
WIZNET_SIPR3 = $0012 ;Source IP Address 0
WIZNET_IR = $0015 ;Interrupt
WIZNET_IMR = $0016 ;Interrupt Mask
WIZNET_RTR0 = $0017 ;Retry Time High Byte
WIZNET_RTR1 = $0018 ;Retry Time Low Byte
WIZNET_RCR = $0019 ;Retry Count
WIZNET_RMSR = $001A ;RX Memory Size (per socket)
WIZNET_TMSR = $001B ;TX Memory Size (per socket)
WIZNET_PATR0 = $001C ;PPPoE Auth Type High
WIZNET_PART1 = $001D ;PPPoE Auth Type Low
WIZNET_PTIMER = $0028 ;PPP LCP Request Timer
WIZNET_PMAGIC = $0029 ;PPP LCP Magic Number
WIZNET_UIPR0 = $002A ;Unreachable IP Address 0
WIZNET_UIPR1 = $002B ;Unreachable IP Address 1
WIZNET_UIPR2 = $002C ;Unreachable IP Address 2
WIZNET_UIPR3 = $002D ;Unreachable IP Address 3
WIZNET_UPORT0 = $002E ;Unreachable Port High
WIZNET_UPORT1 = $002F ;Unreachable Port Low
;Socket Registers
WIZNET_S0_BASE = $0400 ;Base for socket 0
WIZNET_S0_MR = $0400 ;Socket 0 Mode
WIZNET_S0_CR = $0401 ;Socket 0 Command
WIZNET_S0_IR = $0402 ;Socket 0 Interrupt
WIZNET_S0_SR = $0403 ;Socket 0 Status
WIZNET_S0_PORT0 = $0404 ;Socket 0 Source Port High
WIZNET_S0_PORT1 = $0405 ;Socket 0 Source Port Low
WIZNET_S0_DHAR0 = $0406 ;Socket 0 Dest Mac 0
WIZNET_S0_DHAR1 = $0407 ;Socket 0 Dest Mac 1
WIZNET_S0_DHAR2 = $0408 ;Socket 0 Dest Mac 2
WIZNET_S0_DHAR3 = $0409 ;Socket 0 Dest Mac 3
WIZNET_S0_DHAR4 = $040A ;Socket 0 Dest Mac 4
WIZNET_S0_DHAR5 = $040B ;Socket 0 Dest Mac 5
WIZNET_S0_DIPR0 = $040C ;Socket 0 Dest IP 0
WIZNET_S0_DIPR1 = $040D ;Socket 0 Dest IP 1
WIZNET_S0_DIPR2 = $040E ;Socket 0 Dest IP 2
WIZNET_S0_DIPR3 = $040F ;Socket 0 Dest IP 3
WIZNET_S0_DPORT0 = $0410 ;Socket 0 Dest Port High
WIZNET_S0_DPORT1 = $0411 ;Socket 0 Dest Port Low
WIZNET_S0_MSSR0 = $0412 ;Socket 0 Max Segment High
WIZNET_S0_MSSR1 = $0413 ;Socket 0 Max Segment Low
WIZNET_S0_PROTO = $0414 ;Socket 0 Protocol (Raw Mode)
WIZNET_S0_TOS = $0415 ;Socket 0 IP TOS
WIZNET_S0_TTL = $0416 ;Socket 0 IP TTL
WIZNET_S0_TX_FSR0 = $0420 ;Socket 0 TX Free Size High
WIZNET_S0_TX_FSR1 = $0421 ;Socket 0 TX Free Size Low
WIZNET_S0_TX_RD0 = $0422 ;Socket 0 TX Read Pointer High
WIZNET_S0_TX_RD1 = $0423 ;Socket 0 TX Read Pointer Low
WIZNET_S0_TX_WR0 = $0424 ;Socket 0 TX Write Pointer High
WIZNET_S0_TX_WR1 = $0425 ;Socket 0 TX Write Pointer Low
WIZNET_S0_RX_RSR0 = $0426 ;Socket 0 RX Received Size High
WIZNET_S0_RX_RSR1 = $0427 ;Socket 0 RX Received Size Low
WIZNET_S0_RX_RD0 = $0428 ;Socket 0 RX Read Pointer High
WIZNET_S0_RX_RD1 = $0429 ;Socket 0 RX Read Pointer Low
WIZNET_S1_BASE = $0500 ;Base for socket 1
WIZNET_S1_MR = $0500 ;Socket 1 Mode
WIZNET_S1_CR = $0501 ;Socket 1 Command
WIZNET_S1_IR = $0502 ;Socket 1 Interrupt
WIZNET_S1_SR = $0503 ;Socket 1 Status
WIZNET_S1_PORT0 = $0504 ;Socket 1 Source Port High
WIZNET_S1_PORT1 = $0505 ;Socket 1 Source Port Low
WIZNET_S1_DHAR0 = $0506 ;Socket 1 Dest Mac 0
WIZNET_S1_DHAR1 = $0507 ;Socket 1 Dest Mac 1
WIZNET_S1_DHAR2 = $0508 ;Socket 1 Dest Mac 2
WIZNET_S1_DHAR3 = $0509 ;Socket 1 Dest Mac 3
WIZNET_S1_DHAR4 = $050A ;Socket 1 Dest Mac 4
WIZNET_S1_DHAR5 = $050B ;Socket 1 Dest Mac 5
WIZNET_S1_DIPR0 = $050C ;Socket 1 Dest IP 0
WIZNET_S1_DIPR1 = $050D ;Socket 1 Dest IP 1
WIZNET_S1_DIPR2 = $050E ;Socket 1 Dest IP 2
WIZNET_S1_DIPR3 = $050F ;Socket 1 Dest IP 3
WIZNET_S1_DPORT0 = $0510 ;Socket 1 Dest Port High
WIZNET_S1_DPORT1 = $0511 ;Socket 1 Dest Port Low
WIZNET_S1_MSSR0 = $0512 ;Socket 1 Max Segment High
WIZNET_S1_MSSR1 = $0513 ;Socket 1 Max Segment Low
WIZNET_S1_PROTO = $0514 ;Socket 1 Protocol (Raw Mode)
WIZNET_S1_TOS = $0515 ;Socket 1 IP TOS
WIZNET_S1_TTL = $0516 ;Socket 1 IP TTL
WIZNET_S1_TX_FSR0 = $0520 ;Socket 1 TX Free Size High
WIZNET_S1_TX_FSR1 = $0521 ;Socket 1 TX Free Size Low
WIZNET_S1_TX_RD0 = $0522 ;Socket 1 TX Read Pointer High
WIZNET_S1_TX_RD1 = $0523 ;Socket 1 TX Read Pointer Low
WIZNET_S1_TX_WR0 = $0524 ;Socket 1 TX Write Pointer High
WIZNET_S1_TX_WR1 = $0525 ;Socket 1 TX Write Pointer Low
WIZNET_S1_RX_RSR0 = $0526 ;Socket 1 RX Received Size High
WIZNET_S1_RX_RSR1 = $0527 ;Socket 1 RX Received Size Low
WIZNET_S1_RX_RD0 = $0528 ;Socket 1 RX Read Pointer High
WIZNET_S1_RX_RD1 = $0529 ;Socket 1 RX Read Pointer Low
WIZNET_S2_BASE = $0600 ;Base for socket 2
WIZNET_S2_MR = $0600 ;Socket 2 Mode
WIZNET_S2_CR = $0601 ;Socket 2 Command
WIZNET_S2_IR = $0602 ;Socket 2 Interrupt
WIZNET_S2_SR = $0603 ;Socket 2 Status
WIZNET_S2_PORT0 = $0604 ;Socket 2 Source Port High
WIZNET_S2_PORT1 = $0605 ;Socket 2 Source Port Low
WIZNET_S2_DHAR0 = $0606 ;Socket 2 Dest Mac 0
WIZNET_S2_DHAR1 = $0607 ;Socket 2 Dest Mac 1
WIZNET_S2_DHAR2 = $0608 ;Socket 2 Dest Mac 2
WIZNET_S2_DHAR3 = $0609 ;Socket 2 Dest Mac 3
WIZNET_S2_DHAR4 = $060A ;Socket 2 Dest Mac 4
WIZNET_S2_DHAR5 = $060B ;Socket 2 Dest Mac 5
WIZNET_S2_DIPR0 = $060C ;Socket 2 Dest IP 0
WIZNET_S2_DIPR1 = $060D ;Socket 2 Dest IP 1
WIZNET_S2_DIPR2 = $060E ;Socket 2 Dest IP 2
WIZNET_S2_DIPR3 = $060F ;Socket 2 Dest IP 3
WIZNET_S2_DPORT0 = $0610 ;Socket 2 Dest Port High
WIZNET_S2_DPORT1 = $0611 ;Socket 2 Dest Port Low
WIZNET_S2_MSSR0 = $0612 ;Socket 2 Max Segment High
WIZNET_S2_MSSR1 = $0613 ;Socket 2 Max Segment Low
WIZNET_S2_PROTO = $0614 ;Socket 2 Protocol (Raw Mode)
WIZNET_S2_TOS = $0615 ;Socket 2 IP TOS
WIZNET_S2_TTL = $0616 ;Socket 2 IP TTL
WIZNET_S2_TX_FSR0 = $0620 ;Socket 2 TX Free Size High
WIZNET_S2_TX_FSR1 = $0621 ;Socket 2 TX Free Size Low
WIZNET_S2_TX_RD0 = $0622 ;Socket 2 TX Read Pointer High
WIZNET_S2_TX_RD1 = $0623 ;Socket 2 TX Read Pointer Low
WIZNET_S2_TX_WR0 = $0624 ;Socket 2 TX Write Pointer High
WIZNET_S2_TX_WR1 = $0625 ;Socket 2 TX Write Pointer Low
WIZNET_S2_RX_RSR0 = $0626 ;Socket 2 RX Received Size High
WIZNET_S2_RX_RSR1 = $0627 ;Socket 2 RX Received Size Low
WIZNET_S2_RX_RD0 = $0628 ;Socket 2 RX Read Pointer High
WIZNET_S2_RX_RD1 = $0629 ;Socket 2 RX Read Pointer Low
WIZNET_S3_BASE = $0700 ;Base for socket 3
WIZNET_S3_MR = $0700 ;Socket 3 Mode
WIZNET_S3_CR = $0701 ;Socket 3 Command
WIZNET_S3_IR = $0702 ;Socket 3 Interrupt
WIZNET_S3_SR = $0703 ;Socket 3 Status
WIZNET_S3_PORT0 = $0704 ;Socket 3 Source Port High
WIZNET_S3_PORT1 = $0705 ;Socket 3 Source Port Low
WIZNET_S3_DHAR0 = $0706 ;Socket 3 Dest Mac 0
WIZNET_S3_DHAR1 = $0707 ;Socket 3 Dest Mac 1
WIZNET_S3_DHAR2 = $0708 ;Socket 3 Dest Mac 2
WIZNET_S3_DHAR3 = $0709 ;Socket 3 Dest Mac 3
WIZNET_S3_DHAR4 = $070A ;Socket 3 Dest Mac 4
WIZNET_S3_DHAR5 = $070B ;Socket 3 Dest Mac 5
WIZNET_S3_DIPR0 = $070C ;Socket 3 Dest IP 0
WIZNET_S3_DIPR1 = $070D ;Socket 3 Dest IP 1
WIZNET_S3_DIPR2 = $070E ;Socket 3 Dest IP 2
WIZNET_S3_DIPR3 = $070F ;Socket 3 Dest IP 3
WIZNET_S3_DPORT0 = $0710 ;Socket 3 Dest Port High
WIZNET_S3_DPORT1 = $0711 ;Socket 3 Dest Port Low
WIZNET_S3_MSSR0 = $0712 ;Socket 3 Max Segment High
WIZNET_S3_MSSR1 = $0713 ;Socket 3 Max Segment Low
WIZNET_S3_PROTO = $0714 ;Socket 3 Protocol (Raw Mode)
WIZNET_S3_TOS = $0715 ;Socket 3 IP TOS
WIZNET_S3_TTL = $0716 ;Socket 3 IP TTL
WIZNET_S3_TX_FSR0 = $0720 ;Socket 3 TX Free Size High
WIZNET_S3_TX_FSR1 = $0721 ;Socket 3 TX Free Size Low
WIZNET_S3_TX_RD0 = $0722 ;Socket 3 TX Read Pointer High
WIZNET_S3_TX_RD1 = $0723 ;Socket 3 TX Read Pointer Low
WIZNET_S3_TX_WR0 = $0724 ;Socket 3 TX Write Pointer High
WIZNET_S3_TX_WR1 = $0725 ;Socket 3 TX Write Pointer Low
WIZNET_S3_RX_RSR0 = $0726 ;Socket 3 RX Received Size High
WIZNET_S3_RX_RSR1 = $0727 ;Socket 3 RX Received Size Low
WIZNET_S3_RX_RD0 = $0728 ;Socket 3 RX Read Pointer High
WIZNET_S3_RX_RD1 = $0729 ;Socket 3 RX Read Pointer Low
;commands
WIZNET_CMD_OPEN = $01
WIZNET_CMD_LISTEN = $02
WIZNET_CMD_CONNECT = $04
WIZNET_CMD_DISCONNECT = $08
WIZNET_CMD_CLOSE = $10
WIZNET_CMD_SEND = $20
WIZNET_CMD_SEND_MAC = $21
WIZNET_CMD_SEND_KEEP = $22
WIZNET_CMD_RECV = $40
;modes
WIZNET_MODE_TCP = $01
WIZNET_MODE_UDP = $02
;macros
MAC WIZREG_WRITE
lda #>{1}
sta WIZNET_ADDR_HI
lda #<{1}
sta WIZNET_ADDR_LO
lda {2}
sta WIZNET_DATA
ENDM
MAC WIZREG_WRITEA
pha
lda #>{0}
sta WIZNET_ADDR_HI
lda #<{0}
sta WIZNET_ADDR_LO
pla
sta WIZNET_DATA
ENDM
MAC WIZREG_READ
lda #>{0}
sta WIZNET_ADDR_HI
lda #<{0}
sta WIZNET_ADDR_LO
lda WIZNET_DATA
ENDM
MAC WIZREADNEXT
lda WIZNET_DATA
ENDM
MAC WIZWRITENEXT
lda {0}
sta WIZNET_DATA
ENDM
telnet.asm:
Code:
processor 6502
org $1000
include "wiznet.inc"
START:
lda #$0b
sta $d020
lda #$00
sta $d021
lda #$01
sta $0286
jsr $e544
jsr Reset_Wiznet
jsr CONFIG_WIZNET_HOST
lda #$03 ;set indirect + autoincrement
sta WIZNET_BASE
lda #$00
sta WIZNET_ADDR_HI
lda #$16
sta WIZNET_ADDR_LO
ldx #$00
CONFIG_LOOP2:
lda CONFIG_DATA2,x
sta WIZNET_DATA
inx
cpx #$07
bne CONFIG_LOOP2
;DEBUG
jsr CONNECT
jmp INNER_LOOP
;DEBUG
;Show main menu
; Settings
; Connect
; Quit
INNER_LOOP:
lda CONNECTED
beq NOTCONNECTED
jsr POLLANDREAD
NOTCONNECTED:
jsr $ffe4
beq INNER_LOOP
pha
jsr PROCESSKEY
bcs NOLOCALECHO ;don't echo controller keys
ldx LOCALECHO
cpx #$01
bne NO_LOCALECHO
jsr $ffd2
NOLOCALECHO:
pla
sta $5020
ldx CONNECTED
cpx #$01
bne INNER_LOOP
;If we're connected, send the char
jsr SEND_CHAR
jmp INNER_LOOP
PROCESSKEY:
cmp #$
;85 89 86 8a 87 8b 88 8c
CONNECT:
jsr WIZNET_CONNECT_TO_SERVER
;Need to replace this with actual connection checking
lda #$01
sta CONNECTED
jmp INNER_LOOP
POLLANDREAD:
jsr POLL
bcc IL1
jsr READ
jsr ReadBlock
jsr DoneRead
IL1:
rts
SEND_CHAR: ;expect char in A
pha
;inc $d021
;get offset
WIZREG_READ WIZNET_S0_TX_WR0
sta rsw
sta $5021
and #$07
clc
adc #$40
sta TX_PTR
WIZREG_READ WIZNET_S0_TX_WR1
sta rsw+1
sta $5022
and #$ff
sta TX_PTR+1
ldx TX_PTR
ldy TX_PTR+1
pla
jsr Write_Wiznet_Reg
inc rsw+1
lda rsw+1
cmp #$00
bne IL4
inc rsw
IL4:
WIZREG_WRITE WIZNET_S0_TX_WR0,rsw
WIZREG_WRITE WIZNET_S0_TX_WR1,rsw+1
WIZREG_WRITE WIZNET_S0_CR,#WIZNET_CMD_SEND
rts
POLL:
lda #$00
sta Read_Count
sta Read_Count+1
WIZREG_READ $0426
sta $5000
sta Read_Count
WIZREG_READ $0427
sta Read_Count+1
sta $5001
lda Read_Count
bne Data_Ready
lda Read_Count+1
bne Data_Ready
POLLX:
clc
rts
Data_Ready:
lda Read_Count
sta readupdate
lda Read_Count+1
sta readupdate+1
sec
rts
bytesread: dc.b $00,$00
READ:
lda Read_Count
sta bytesread
lda Read_Count+1
sta Read_Count2+1
sta bytesread+1
;428,429 are offset
; add to 6000
lda #$60
sta Read_Base
lda #$00
sta Read_Base+1
WIZREG_READ $0428
sta $5002
sta rsr
and #$07
sta Read_Offset
sta $5004
WIZREG_READ $0429
sta $5003
sta rsr+1
sta Read_Offset+1
sta $5005
SetBase:
lda Read_Offset+1
clc
adc Read_Base+1
bcc sb0
inc Read_Base
sb0:
sta Read_Base+1
sta $5007
lda Read_Offset
clc
adc Read_Base
sta Read_Base
sta $5006
lda Read_Base
sta rboff+2
lda Read_Base+1
sta rboff+1
lda #$03
sta WIZNET_BASE
lda Read_Base
sta WIZNET_ADDR_HI
lda Read_Base+1
sta WIZNET_ADDR_LO
rts
ReadBlock:
lda WIZNET_DATA
rboff: sta $6000
jsr $ffd2
inc rboff+1
bne rb1
inc rboff+2
rb1:
dec bytesread+1
lda bytesread+1
cmp #$ff
bne rb2
dec bytesread
rb2:
;have we read all of the data yet?
lda bytesread+1
bne rb4
lda bytesread
beq ReadEnd
rb4:
inc rsr+1
bne rb3
inc rsr
rb3:
;do we need to wrap?
lda rboff+2
cmp #$68
bne ReadBlock
lock:
jmp lock
lda #$60
sta rboff+2
sta WIZNET_ADDR_HI
lda #$00
sta rboff+1
sta WIZNET_ADDR_LO
lda #$03 ;set indirect + autoincrement
sta WIZNET_BASE
jmp ReadBlock
ReadEnd:
inc rsr+1
bne re0
inc rsr
re0:
;dec rsr+1
rts
DoneRead:
lda rsr
sta $5008
lda rsr+1
sta $5009
ldx #$04
ldy #$28
lda rsr
jsr Write_Wiznet_Reg
lda rsr+1
ldy #$29
jsr Write_Wiznet_Reg
ldx #$04
ldy #$01
lda #$40
jsr Write_Wiznet_Reg
rts
Reset_Wiznet:
lda #$80
sta WIZNET_BASE
rts
Write_Wiznet_Reg: ;Expects address in x:y, byte in a
stx WIZNET_ADDR_HI
sty WIZNET_ADDR_LO
sta WIZNET_DATA
rts
Read_Wiznet_Reg: ;Expects address in x:y, returns byte in a
stx WIZNET_BASE+1
sty WIZNET_BASE+2
lda WIZNET_BASE+3
rts
include "hostcfg.asm"
include "open.asm"
rsw: dc.b $00,$00
readupdate:
dc.b $00,$00
rsr: dc.b $00,$00
TX_PTR: dc.b $00,$00
LOCALECHO: dc.b $00
CONNECTED: dc.b $00
CONFIG_DATA2:
dc.b $00,$0f,$a0,$08,$55,$55
;target server details
SERVER_ADDRESS:
dc.b 81,235,242,146
SERVER_PORT:
dc.b 00,23
SERVER_SOURCEPORT:
dc.b $0c,$64
Read_Mask: dc.b $07,$ff
Read_Base: dc.b $00,$00
Read_Offset: dc.b $00,$00
Read_Count: dc.b $00,$00
Read_Count2: dc.b $00,$00
Read_Offset2: dc.b $00,$00
Read_Masked_Offset dc.b $00,$00
hostcfg.asm:
Code:
;Host configuration data for wiznet
CONFIG_WIZNET_HOST:
lda #$03 ;set indirect + autoincrement
sta WIZNET_BASE
lda #$00
sta WIZNET_ADDR_HI
lda #$01
sta WIZNET_ADDR_LO
ldx #$00
CONFIG_LOOP1:
lda CONFIG_DATA1,x
sta WIZNET_DATA
inx
cpx #$12
bne CONFIG_LOOP1
rts
CONFIG_DATA1:
dc.b 192,168,64,1 ;Gateway
dc.b 255,255,255,0 ;Netmask
dc.b $06,$06,$06,$06,$06,$06 ;MAC Address
dc.b 192,168,64,6 ;IP Address
open.asm:
Code:
;opens the host/port found at label
;"SERVER_ADDR", "SERVER_PORT", from "SERVER_SOURCEPORT"
WIZNET_CONNECT_TO_SERVER:
;set source port
WIZREG_WRITE WIZNET_S0_PORT0, SERVER_SOURCEPORT
WIZREG_WRITE WIZNET_S0_PORT1, SERVER_SOURCEPORT+1
;set open mode (tcp)
WIZREG_WRITE WIZNET_S0_BASE,#WIZNET_MODE_TCP
;Open our side
WIZREG_WRITE WIZNET_S0_CR,#WIZNET_CMD_OPEN
;set dest address
lda #$03 ;set indirect + autoincrement
sta WIZNET_BASE
lda #>WIZNET_S0_DIPR0
sta WIZNET_ADDR_HI
lda #<WIZNET_S0_DIPR0
sta WIZNET_ADDR_LO
lda SERVER_ADDRESS
sta WIZNET_DATA
lda SERVER_ADDRESS+1
sta WIZNET_DATA
lda SERVER_ADDRESS+1
sta WIZNET_DATA
lda SERVER_ADDRESS+1
sta WIZNET_DATA
;set dest port
lda SERVER_PORT
sta WIZNET_DATA
lda SERVER_PORT+1
sta WIZNET_DATA
;Connect
WIZREG_WRITE WIZNET_S0_CR,#WIZNET_CMD_CONNECT
rts