mirror of
https://github.com/bobbimanners/emailler.git
synced 2024-10-05 17:58:54 +00:00
8279ef4d63
Up to now every IP65 library contained exactly one Ethernet driver. In scenarios without strict memory limitations I might however be benefitial to have an IP65 library containing all Ethernet drivers available for a given target. The Ethernet hardware detection that was already present before is used in this scenario to try to initialize one Ethernet driver after the other until one succeeds. If all drivers fail to initialize the user gets informed as usual. The WIZ811MJ driver was primarily introduced for orthogonality reasons. There are however at least two W5100-based prototypes for the C64 so it makes at least some sense. The name was chosen as sort of placeholder for "something containing a W5100 chip".
131 lines
2.5 KiB
ArmAsm
131 lines
2.5 KiB
ArmAsm
.include "../inc/common.i"
|
|
.include "../inc/commonprint.i"
|
|
.include "../inc/net.i"
|
|
|
|
.import exit_to_basic
|
|
|
|
.import dns_set_hostname
|
|
.import dns_resolve
|
|
.import dns_ip
|
|
.import dns_status
|
|
.import cfg_get_configuration_ptr
|
|
|
|
|
|
; keep LD65 happy
|
|
.segment "ZPSAVE"
|
|
|
|
|
|
.segment "STARTUP"
|
|
|
|
; switch to lower case charset
|
|
lda #14
|
|
jsr print_a
|
|
|
|
jsr print_cr
|
|
init_ip_via_dhcp
|
|
; jsr overwrite_with_hardcoded_dns_server
|
|
jsr print_ip_config
|
|
|
|
ldax #hostname_1
|
|
jsr do_dns_query
|
|
|
|
ldax #hostname_2
|
|
jsr do_dns_query
|
|
|
|
ldax #hostname_3
|
|
jsr do_dns_query
|
|
|
|
ldax #hostname_4
|
|
jsr do_dns_query
|
|
|
|
ldax #hostname_5
|
|
jsr do_dns_query
|
|
|
|
ldax #hostname_6
|
|
jsr do_dns_query
|
|
|
|
jmp exit_to_basic
|
|
|
|
do_dns_query:
|
|
pha
|
|
jsr print
|
|
lda #' '
|
|
jsr print_a
|
|
lda #':'
|
|
jsr print_a
|
|
lda #' '
|
|
jsr print_a
|
|
pla
|
|
jsr dns_set_hostname
|
|
jsr dns_resolve
|
|
bcc :+
|
|
ldax #dns_lookup_failed_msg
|
|
jsr print
|
|
jmp @print_dns_status
|
|
: ldax #dns_ip
|
|
jsr print_dotted_quad
|
|
@print_dns_status:
|
|
jsr print_cr
|
|
lda dns_status
|
|
jsr print_hex
|
|
lda dns_status+1
|
|
jsr print_hex
|
|
jsr print_cr
|
|
rts
|
|
|
|
overwrite_with_hardcoded_dns_server:
|
|
ldx #3
|
|
: lda hardcoded_dns_server,x
|
|
sta cfg_dns,x
|
|
dex
|
|
bpl :-
|
|
rts
|
|
|
|
|
|
.rodata
|
|
|
|
hostname_1:
|
|
.byte "SLASHDOT.ORG",0 ; this should be an A record
|
|
|
|
hostname_2:
|
|
.byte "VICTA.JAMTRONIX.COM",0 ; this should be a CNAME
|
|
|
|
hostname_3:
|
|
.byte "WWW.JAMTRONIX.COM",0 ; this should be another CNAME
|
|
|
|
hostname_4:
|
|
.byte "FOO.BAR.BOGUS",0 ; this should fail
|
|
|
|
hostname_5:
|
|
.byte "111.22.3.4",0 ; this should work (without hitting dns)
|
|
|
|
hostname_6:
|
|
.byte "3COM.COM",0 ; make sure doesn't get treated as a number
|
|
|
|
hardcoded_dns_server:
|
|
; .byte 61,9,195,193
|
|
; .byte 64,127,100,12
|
|
.byte 205,171,3,65
|
|
.byte 69,111,95,106
|
|
|
|
|
|
|
|
; -- LICENSE FOR dns.s --
|
|
; The contents of this file are subject to the Mozilla Public License
|
|
; Version 1.1 (the "License"); you may not use this file except in
|
|
; compliance with the License. You may obtain a copy of the License at
|
|
; http://www.mozilla.org/MPL/
|
|
;
|
|
; Software distributed under the License is distributed on an "AS IS"
|
|
; basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
|
|
; License for the specific language governing rights and limitations
|
|
; under the License.
|
|
;
|
|
; The Original Code is ip65.
|
|
;
|
|
; The Initial Developer of the Original Code is Jonno Downes,
|
|
; jonno@jamtronix.com.
|
|
; Portions created by the Initial Developer are Copyright (C) 2009
|
|
; Jonno Downes. All Rights Reserved.
|
|
; -- LICENSE END --
|