mirror of
https://github.com/bobbimanners/emailler.git
synced 2024-11-18 21:07:03 +00:00
git-svn-id: http://svn.code.sf.net/p/netboot65/code@156 93682198-c243-4bdb-bd91-e943c89aac3b
This commit is contained in:
parent
14667cc6c1
commit
8eac97e4bf
@ -1,7 +1,7 @@
|
||||
MEMORY {
|
||||
ZP: start = $02, size = $1A, type = rw, define = yes;
|
||||
IP65ZP: start = $5f, size = $10, type = rw, define = yes;
|
||||
RAM: start = $07FF, size = $58ab, define = yes, file = %O;
|
||||
RAM: start = $07FF, size = $77ab, define = yes, file = %O;
|
||||
DISCARD: start = $77FF, size = $10, define = yes;
|
||||
}
|
||||
SEGMENTS {
|
||||
|
@ -33,7 +33,7 @@ NB65_SEND_UDP_PACKET EQU $12 ;inputs: AX points to a UDP packet parame
|
||||
NB65_UDP_REMOVE_LISTENER EQU $13 ;inputs: AX contains UDP port number that listener will be removed from
|
||||
|
||||
NB65_TCP_CONNECT EQU $14 ;inputs: AX points to a TCP connect parameter structure, outputs: A = connection #
|
||||
NB65_TCP_SEND_PACKET EQU $15 ;inputs: AX points to a TCP send parameter structure, outputs: none packet is sent
|
||||
NB65_SEND_TCP_PACKET EQU $15 ;inputs: AX points to a TCP send parameter structure, outputs: none packet is sent
|
||||
NB65_TCP_CLOSE_CONNECTION EQU $16 ;inputs: A = connection # to close, outputs: none
|
||||
|
||||
NB65_TFTP_SET_SERVER EQU $20 ;inputs: AX points to a TFTP server parameter structure, outputs: none
|
||||
@ -88,9 +88,8 @@ NB65_TCP_PORT EQU $04 ;2 byte port number (to li
|
||||
NB65_TCP_CALLBACK EQU $06 ;2 byte address of routine to be called whenever a new packet arrives
|
||||
|
||||
;offsets in TCP send parameter structure
|
||||
NB65_TCP_CONNECTION_NUMBER EQU $00 ;1 byte connection number for previously set up connection
|
||||
NB65_TCP_PAYLOAD_LENGTH EQU $01 ;2 byte length of payload of packet (after all ethernet,IP,UDP/TCP headers)
|
||||
NB65_TCP_PAYLOAD_POINTER EQU $03 ;2 byte pointer to payload of packet (after all headers)
|
||||
NB65_TCP_PAYLOAD_LENGTH EQU $00 ;2 byte length of payload of packet (after all ethernet,IP,UDP/TCP headers)
|
||||
NB65_TCP_PAYLOAD_POINTER EQU $02 ;2 byte pointer to payload of packet (after all headers)
|
||||
|
||||
;offsets in TCP/UDP packet parameter structure
|
||||
NB65_REMOTE_IP EQU $00 ;4 byte IP address of remote machine (src of inbound packets, dest of outbound packets)
|
||||
@ -99,7 +98,6 @@ NB65_LOCAL_PORT EQU $06 ;2 byte port number of loc
|
||||
NB65_PAYLOAD_LENGTH EQU $08 ;2 byte length of payload of packet (after all ethernet,IP,UDP/TCP headers)
|
||||
; in a TCP connection, if the length is $FFFF, this actually means "end of connection"
|
||||
NB65_PAYLOAD_POINTER EQU $0A ;2 byte pointer to payload of packet (after all headers)
|
||||
NB65_CONNECTION_NUMBER EQU $0C ;1 byte "connection number" (valid for TCP connections only)
|
||||
|
||||
;error codes (as returned by NB65_GET_LAST_ERROR)
|
||||
NB65_ERROR_PORT_IN_USE EQU $80
|
||||
|
@ -1,4 +1,10 @@
|
||||
;TCP (transmission control protocol) functions
|
||||
;NB to use these functions, you must pass "-DTCP" to ca65 when assembling "ip.s"
|
||||
;otherwise inbound tcp packets won't get passed in to tcp_process
|
||||
;currently only a single outbound (client) connection is supported
|
||||
;to use, first call "tcp_connect" to create a connection. to send data on that connection, call "tcp_send".
|
||||
;whenever data arrives, a call will be made to the routine pointed at by tcp_callback.
|
||||
|
||||
|
||||
MAX_TCP_PACKETS_SENT=8 ;timeout after sending 8 messages will be about 7 seconds (1+2+3+4+5+6+7+8)/4
|
||||
|
||||
@ -12,7 +18,6 @@ MAX_TCP_PACKETS_SENT=8 ;timeout after sending 8 messages will be about 7 sec
|
||||
|
||||
.export tcp_init
|
||||
.export tcp_process
|
||||
.export tcp_listen
|
||||
.export tcp_connect
|
||||
.export tcp_callback
|
||||
.export tcp_connect_ip
|
||||
@ -21,7 +26,7 @@ MAX_TCP_PACKETS_SENT=8 ;timeout after sending 8 messages will be about 7 sec
|
||||
|
||||
.export tcp_inbound_data_ptr
|
||||
.export tcp_inbound_data_length
|
||||
.export tcp_ack_number
|
||||
|
||||
|
||||
.import ip_calc_cksum
|
||||
.import ip_send
|
||||
@ -113,22 +118,22 @@ tcp_ack_number: .res 4
|
||||
tcp_data_ptr: .res 2
|
||||
tcp_data_len: .res 2
|
||||
tcp_send_data_ptr: .res 2
|
||||
tcp_send_data_len: .res 2
|
||||
tcp_callback: .res 2
|
||||
tcp_send_data_len: .res 2 ;length (in bytes) of data to be sent over tcp connection
|
||||
tcp_callback: .res 2 ;vector to routine to be called when data is received over tcp connection
|
||||
tcp_flags: .res 1
|
||||
|
||||
|
||||
tcp_inbound_data_ptr: .res 2
|
||||
tcp_inbound_data_length: .res 2
|
||||
|
||||
tcp_inbound_data_ptr: .res 2 ;pointer to data just recieved over tcp connection
|
||||
tcp_inbound_data_length: .res 2 ;length of data just received over tcp connection
|
||||
;(if this is $ffff, that means "end of file", i.e. remote end has closed connection)
|
||||
tcp_connect_sequence_number: .res 4 ;the seq number we will next send out
|
||||
tcp_connect_expected_ack_number: .res 4 ;what we expect to see in the next inbound ack
|
||||
tcp_connect_ack_number: .res 4 ;what we will next ack
|
||||
tcp_connect_last_received_seq_number: .res 4 ;the seq field in the last inbound packet for this connection
|
||||
tcp_connect_last_ack: .res 4 ;ack field in the last inbound packet for this connection
|
||||
tcp_connect_local_port: .res 2
|
||||
tcp_connect_local_port: .res 2 ;
|
||||
tcp_connect_remote_port: .res 2
|
||||
tcp_connect_ip: .res 4
|
||||
tcp_connect_ip: .res 4 ;ip address of remote server to connect to
|
||||
|
||||
|
||||
tcp_timer: .res 1
|
||||
@ -137,6 +142,10 @@ tcp_packet_sent_count: .res 1
|
||||
|
||||
.code
|
||||
|
||||
; initialize tcp
|
||||
;called automatically by ip_init if "ip.s" was compiled with -DTCP
|
||||
; inputs: none
|
||||
; outputs: none
|
||||
tcp_init:
|
||||
|
||||
rts
|
||||
@ -473,11 +482,6 @@ tcp_send_packet:
|
||||
jmp ip_send ; send packet, sec on error
|
||||
|
||||
|
||||
;listen on the tcp port specified
|
||||
; tcp_callback: vector to call when data arrives on specified port
|
||||
; AX: set to tcp port to listen on
|
||||
tcp_listen:
|
||||
rts
|
||||
|
||||
check_current_connection:
|
||||
;see if the ip packet we just got is for a valid (non-closed) tcp connection
|
||||
@ -516,14 +520,14 @@ check_current_connection:
|
||||
clc
|
||||
rts
|
||||
|
||||
tcp_process:
|
||||
;process incoming tcp packet
|
||||
;called automatically by ip_process if "ip.s" was compiled with -DTCP
|
||||
;inputs:
|
||||
; eth_inp: should contain an ethernet frame encapsulating an inbound tcp packet
|
||||
;outputs:
|
||||
; none but if connection was found, an outbound message may be created, overwriting eth_outp
|
||||
; also tcp_state and other tcp variables may be modified
|
||||
|
||||
tcp_process:
|
||||
|
||||
lda #tcp_flag_RST
|
||||
bit tcp_inp+tcp_flags_field
|
||||
|
@ -587,7 +587,9 @@ netboot65_msg:
|
||||
main_menu_msg:
|
||||
.byte 13," MAIN MENU",13,13
|
||||
.byte "F1: TFTP BOOT"
|
||||
.if !(BANKSWITCH_SUPPORT=$03)
|
||||
.if (BANKSWITCH_SUPPORT=$03)
|
||||
.byte " F3: GOPHER"
|
||||
.else
|
||||
.byte " F3: BASIC"
|
||||
.endif
|
||||
.byte 13
|
||||
|
@ -1 +1 @@
|
||||
.byte "0.9.8"
|
||||
.byte "0.9.14"
|
||||
|
@ -21,7 +21,7 @@ INCFILES=\
|
||||
all: \
|
||||
ip65test.dsk \
|
||||
testdns.prg \
|
||||
test_gopher.prg \
|
||||
gopher_browser.prg \
|
||||
testdns.pg2 \
|
||||
testtftp.prg \
|
||||
testtftp.pg2\
|
||||
@ -42,8 +42,8 @@ all: \
|
||||
test_tcp.prg: test_tcp.o $(IP65TCPLIB) $(C64PROGLIB) $(INCFILES) ../cfg/c64prg.cfg
|
||||
$(LD) -m test_tcp.map -vm -C ../cfg/c64prg.cfg -o test_tcp.prg $(AFLAGS) $< $(IP65TCPLIB) $(C64PROGLIB)
|
||||
|
||||
test_gopher.prg: test_gopher.o $(IP65TCPLIB) $(C64PROGLIB) $(INCFILES) ../cfg/c64prg.cfg
|
||||
$(LD) -m test_gopher.map -vm -C ../cfg/c64prg.cfg -o test_gopher.prg $(AFLAGS) $< $(IP65TCPLIB) $(C64PROGLIB)
|
||||
gopher_browser.prg: gopher_browser.o $(IP65TCPLIB) $(C64PROGLIB) $(INCFILES) ../cfg/c64prg.cfg
|
||||
$(LD) -m gopher_browser.map -vm -C ../cfg/c64prg.cfg -o gopher_browser.prg $(AFLAGS) $< $(IP65TCPLIB) $(C64PROGLIB)
|
||||
|
||||
|
||||
%.pg2: %.o $(IP65LIB) $(APPLE2PROGLIB) $(INCFILES) ../cfg/a2bin.cfg
|
||||
|
2
dist/version_number.txt
vendored
2
dist/version_number.txt
vendored
@ -1 +1 @@
|
||||
0.9.8
|
||||
0.9.14
|
33
doc/C64 gopher client.txt
Normal file
33
doc/C64 gopher client.txt
Normal file
@ -0,0 +1,33 @@
|
||||
C64 gopher browser v0.1
|
||||
|
||||
|
||||
REQUIREMENTS
|
||||
1) RR-NET or compatible
|
||||
2) DHCP server on LAN
|
||||
|
||||
USAGE
|
||||
|
||||
When run, the program will use DHCP to assign itself an IP address, default gateway and DNS server address.
|
||||
|
||||
You will then be prompted for the address of a gopher server. you can enter a hostname or an ip address. If
|
||||
you just hit enter at this prompt, "gopher.floodgap.com" will load. NB - in the current version you can only
|
||||
enter a server name, not a specific resource on that server, or a port (the default gopher port 70 is used).
|
||||
|
||||
Once a gopher resource is loaded, the following keys are active:
|
||||
|
||||
SPACE, F7 or down arrow : scroll down to next page
|
||||
F1 or up arror : scroll up to previous page
|
||||
F2 : show recently visited resource
|
||||
F3 or left arrow : go back to last visited resource
|
||||
F5 : prompt to enter a new server (nb server name only - not resource or port)
|
||||
RUN/STOP : quit
|
||||
|
||||
If the page currently being displayed has links to further resources in it, each link will be displayed
|
||||
starting with a highlighted letter (e.g. the first link on a page will have an inverse "A" next to it,
|
||||
the 2nd link on a page will have an inverse "B" next to it etc). Press the letter assigned to the link
|
||||
will load up that resource.
|
||||
|
||||
Currently only Text and Directory resources are handled.
|
||||
|
||||
jonno @ jamtronix.com
|
||||
2009-07-11
|
@ -89,7 +89,7 @@ IP65 is a TCP/IP stack for 6502 based computers.
|
||||
|
||||
<tr>
|
||||
<th>Services</th>
|
||||
<td class="unimp" colspan="2" rowspan="2">TCP</td>
|
||||
<td class="partial" colspan="2" rowspan="2">TCP</td>
|
||||
<td class="done" colspan="2">DHCP/DNS/TFTP</td>
|
||||
<td class="done" colspan="2">Echo</td>
|
||||
</tr>
|
||||
@ -153,6 +153,7 @@ IP65 is a TCP/IP stack for 6502 based computers.
|
||||
<pre>
|
||||
Release Maintainer Changes
|
||||
------- ---------- -------
|
||||
2009-07-12 Jonno Downes Initial TCP implementation (use -DTCP to include)
|
||||
2009-03-21 Jonno Downes Added technical reference documentation
|
||||
2009-03-15 Jonno Downes Added DHCP, DNS & TFTP
|
||||
2009-01-22 Per Olofsson Added copymem fix from Jonno Downes. Added MPL license.
|
||||
|
Binary file not shown.
Loading…
Reference in New Issue
Block a user