git-svn-id: http://svn.code.sf.net/p/netboot65/code@237 93682198-c243-4bdb-bd91-e943c89aac3b

This commit is contained in:
jonnosan 2009-12-30 02:00:21 +00:00
parent caacc876fb
commit 0df937be7c
8 changed files with 95 additions and 26 deletions

View File

@ -1,4 +0,0 @@
- telnet now supports vt100 emulation (thanks to Lars Stollenwerk)
- gopher: fixed bug preventing connection to jamtronix.com

View File

@ -1 +1 @@
.byte "1.0.25"
.byte "1.0.27"

View File

@ -102,13 +102,13 @@ getc_timeout_seconds: .res 1
buffer_length: .res 2
.code
xmodem_send:
;send a file via XMODEM (checksum mode only, not CRC)
;assumes that a tcp connection has already been set up, and that the other end is waiting to start receiving
;inputs: AX points to routine to call once for each byte in file to send (e.g. save to disk, print to screen, whatever) - byte will be in A, carry flag set means EOF
; xmodem_iac_escape should be set to non-zero if the remote end escapes $FF bytes (i.e. if it is a real telnet server)
;outputs: none
xmodem_send:
stax get_byte+1
jsr xmodem_transfer_setup
lda #0
@ -262,13 +262,13 @@ xmodem_transfer_setup:
stax tcp_callback
rts
xmodem_receive:
;recieve a file via XMODEM (checksum mode only, not CRC)
;assumes that a tcp connection has already been set up, and that the other end is waiting to start sending
;inputs: AX points to routine to call once for each byte in downloaded file (e.g. save to disk, print to screen, whatever) - byte will be in A
; xmodem_iac_escape should be set to non-zero if the remote end escapes $FF bytes (i.e. if it is a real telnet server)
;outputs: none
xmodem_receive:
stax got_byte+1
jsr xmodem_transfer_setup
@ -294,6 +294,7 @@ xmodem_receive:
bcc @got_block_start
lda user_abort
beq @no_user_abort
sec
jmp xmodem_transfer_exit
@no_user_abort:
jsr send_nak
@ -314,18 +315,32 @@ xmodem_receive:
@got_block_start:
cmp #EOT
bne :+
ldax #got_eot
jsr print_ascii_as_native
jsr send_ack
clc
jmp xmodem_transfer_exit
:
cmp #$81 ;jamming signal BBS seems to use $81 not $01 as SOH
beq @got_soh
cmp #SOH
bne @wait_for_block_start
beq @got_soh
jsr print_hex
lda #'!' ;we got an unexpected character
jsr print_a
jsr print_a
jmp @wait_for_block_start
@got_soh:
;now get block number
lda #XMODEM_TIMEOUT_SECONDS
jsr getc
bcc :+
jsr send_nak
lda #'.'
jmp print_a
jmp @wait_for_block_start
:
sta actual_block_number
@ -334,12 +349,18 @@ xmodem_receive:
lda #XMODEM_TIMEOUT_SECONDS
jsr getc
bcc :+
lda #'.'
jmp print_a
jsr send_nak
jmp @wait_for_block_start
:
adc actual_block_number
cmp #$ff
bne @wait_for_block_start
beq :+
lda #'?'
jsr print_a
jmp @wait_for_block_start
:
ldax #receiving
jsr print_ascii_as_native
@ -527,6 +548,7 @@ block_number_msg: .byte " block $",0
expecting: .byte "expecting",0
receiving: .byte "receiving",0
sending: .byte "sending",0
got_eot: .byte "end of transmission",10,0
bad_block_number: .byte "bad block number",0
checksum_msg: .byte "checksum $",0

8
dist/make_dist.rb vendored
View File

@ -26,8 +26,12 @@ end
["client/carts/kipperkart_rr.bin","c64/"],
["client/carts/kipperterm.bin","c64/"],
["client/carts/kipperterm_rr.bin","c64/"],
["client/carts/kipperterm.prg","c64/"],
["client/carts/kippergo.bin","c64/"],
["client/carts/kippergo_rr.bin","c64/"],
["client/carts/kippergo.prg","c64/"],
["client/carts/netboot.bin","c64/"],
["client/nb65/d64_upload.prg","boot/"],
#["client/nb65/d64_upload.prg","boot/"],
["client/examples/upnatom.prg","boot/"],
["server/lib/tftp_server.rb","lib"],
["server/lib/file_list.rb","lib"],
@ -41,7 +45,7 @@ end
["doc/README.C64.html","doc"],
["doc/CONTRIBUTORS.txt","doc/"],
["doc/LICENSE.txt","doc/"],
["doc/CHANGES.txt","doc/"],
["doc/kipper_api_technical_reference.doc","doc"],
["client/inc/common.i","inc"],
["client/inc/kipper_constants.i","inc"],

View File

@ -1 +1 @@
1.0.25
1.0.27

25
doc/CHANGES.txt Normal file
View File

@ -0,0 +1,25 @@
v1.0.27
- ADD: change border colour to indicate telnet connect/disconnect
v1.0.26
- FIX: telnet often failed to notice disconnect by remote server
v1.0.25
- FIX: vt100 emulation was leaving a cursor after a "clear to end of line" command ( ]J )
- ADD: XMODEM upload support
- CHANGE: removed 'line mode' from telnet
v1.0.24
- CHANGE: split KipperTerm (telnet + gopher) into KipperTerm (enhanced telnet) and KipperGo (basic telnet + gopher)
- ADD: XMODEM download support for KipperTerm
- FIX: tell remote server screen size (40x25)
- FIX: vt100 no longer does line wrap & scroll when writing to bottom right hand corner
- FIX: telnet sessions now send 'keep alive' (stops my broadband router from losing NAT state)
- FIX: tcp was sending wrong seq number when ACKing inbound data just after sending data out
- FIX: telnet packets > 256 bytes not completely processed
- ADD: can change default disk drive
v1.0.23
- telnet now supports vt100 emulation (thanks to Lars Stollenwerk)
- gopher: fixed bug preventing connection to jamtronix.com

View File

@ -7,18 +7,19 @@ memory location as BASIC.
Within the major flavours, there are also variations in media - the majority of code is identical between the different media but there are different headers etc. The supported media are:
<p>
<ul>
<li> A prg that can be loaded from disk </li>
<li>'ordinary' cartridge images (that can be burned into an eeprom on e.g. a 64NIC+ card)</li>
<li> A program that can be loaded from disk (filename will end with .prg)</li>
<li>'ordinary' cartridge images (that can be burned into an eeprom on e.g. a 64NIC+ card) (filename will end with .bin)</li>
<li>'Retro Replay' cartridge images - these are actually 'ordinary' cartridge images that have been converted into a form suitable for use in a Retro Replay using Doc Bacardi's
<a href=http://freenet-homepage.de/LittleDreamLand/CRT8040.html>CRT8040</a> tool</li>
<a href=http://freenet-homepage.de/LittleDreamLand/CRT8040.html>CRT8040</a> tool (filename will end with _rr.bin)</li>
</ul>
<table>
<tr><th>filename</th><th>flavour</th><th>media</th><th>command to use in VICE</th></tr>
<tr><td>netboot.bin</td><td>UDP only (+ BASIC)</td><td>standard 8KB cart</td><td>x64.exe -cart8 netboot.bin</td></tr>
<tr><td>kipperkart.bin</td><td>UDP/TCP (no BASIC)</td><td>standard 16KB cart</td><td>x64.exe -cart16 kipperkart.bin</td></tr>
<tr><td>kipperterm.bin</td><td>telnet &amp; gopher client</td><td>standard 16KB cart</td><td>x64.exe -cart16 kipperterm.bin</td></tr>
<tr><td>kipperkart_rr.bin</td><td>UDP/TCP (no BASIC)</td><td>Retro Replay cart image</td><td>x64.exe -cartrr kipperkart_rr.bin</td></tr>
<tr><th>filename</th><th>flavour</th><th>cartidge size</th></tr>
<tr><td>netboot.bin</td><td>UDP only (+ BASIC)</td><td>8KB cart</td></tr>
<tr><td>kipperkart.bin</td><td>UDP/TCP (no BASIC)</td><td>16KB cart</td></tr>
<tr><td>kippergo.bin</td><td>basic telnet &amp; gopher client</td><td>16KB cart</td></tr>
<tr><td>kipperterm.bin</td><td>enhanced telnet</td><td>16KB cart</td></tr>
</table>
@ -54,13 +55,12 @@ Once the 16KB cartridge image has initialised the IP stack, it will look for a f
bytes of the file) and executed. NB - since BASIC is not available only 100% Machine Language programs can be executed, although if there is a BASIC stub consisting of a single line that does a SYS
call, the target of the SYS call will be used as the address to start execution from.
<h2>KIPPERTERM cart</h2>
<h2>KIPPERGO cart</h2>
<ul>
<li>F1 : TELNET. You will be prompted to enter a hostname, a port number, and a connection mode. Connection mode is either
<ul>
<li>VT100 - keypresses are converted to ASCII before being sent out, and incoming data is converted to PETSCII before being displayed. Many common VT100 escape codes are interpreted, and keystrokes are sent a character at a time.</li>
<li>PETSCII - no translation is done on data coming in or out. This mode is suitable for connecting to PETSCII BBSs</li>
<li>Line - Data is converted to/from ASCII, but each line of input can be edited and is not sent until the RETURN key is pressed.</li>
</ul>
Once a connection is made, it can be terminated by hitting RUN/STOP
<li>F3 : GOPHER. You will be prompted to enter the hostname (only - no port number can be specified) of a gopher server, and the gopher client will be launched connecting to the specified server.
@ -83,6 +83,26 @@ starting with a highlighted letter (e.g. the first link on a page will have an i
the 2nd link on a page will have an inverse "B" next to it etc). Press the letter assigned to the link
to load up that resource.
<h2>KIPPERTERM cart</h2>
<ul>
<li>F1 : TELNET. You will be prompted to enter a hostname, a port number, and a connection mode. Connection mode is either
<ul>
<li>VT100 - keypresses are converted to ASCII before being sent out, and incoming data is converted to PETSCII before being displayed. Many common VT100 escape codes are interpreted, and keystrokes are sent a character at a time.</li>
<li>PETSCII - no translation is done on data coming in or out. This mode is suitable for connecting to PETSCII BBSs</li>
</ul>
</ul>
Once a connection is made, it can be terminated by hitting RUN/STOP
<h3>File Transfer</h3>
While connected, you can hit F1 to bring up a file transfer menu. This menu presents the following options:
<ul>
<li>F1 : D/L File (XMODEM). Select this option after you have started the file download process on the remote server. You will be prompted for a filename for the file to be saved as after the download has completed.
<li>F3 : U/L File (XMODEM). Select this option after you have started the file upload process on the remote server. You will be given a menu of files on the local disk to transfer.
<li>F7 : Return. Selecting this option will restore the screen return you to your connection
</ul>
<h2>IP CONFIGURATION</h2>
There is a script in the "bin" folder called "set_ip_config.rb" that can be used to modify the MAC address and IP config details in the cart image before
@ -120,6 +140,7 @@ Most network functions will return an 8 bit error code if things go wrong.
<tr><td>$88</td><td>NO SUCH LISTENER</td></tr>
<tr><td>$89</td><td>CONNECTION RESET BY PEER</td></tr>
<tr><td>$8A</td><td>CONNECTION CLOSED</td></tr>
<tr><td>$8B</td><td>TOO MANY ERRORS</td></tr>
<tr><td>$90</td><td>FILE ACCESS FAILURE</td></tr>
<tr><td>$A0</td><td>MALFORMED URL</td></tr>
<tr><td>$A1</td><td>DNS LOOKUP FAILED</td></tr>
@ -143,8 +164,8 @@ NETBOOT65 is licensed under the same terms as IP65, the <a href=http://www.mozil
Package is maintained by Jonno Downes - jonno@jamtronix.com
<h3>Contributors</h3>
<ul>
<li>Jonno Downes - current maintainer of ip65, layers 4-7 (dhcp,dns,tcp,telnet, http, gopher)</li>
<li>Jonno Downes - current maintainer of ip65, original developer of layers 4-7 (dhcp,dns,tcp,telnet, http, gopher)</li>
<li>Glenn Holmer - icmp enhancements, bugfixes</li>
<li>Per Olofsson - initial creator of ip65, layers 1-3 (eth,arp,ip,icmp,udp)</li>
<li>Per Olofsson - initial creator of ip65, original developer of layers 1-3 (eth,arp,ip,icmp,udp)</li>
<li>Lars Stollenwerk - vt100 emulation </li>
</ul>

View File

@ -162,6 +162,7 @@ IP65 is a TCP/IP stack for 6502 based computers.
<pre>
Release Maintainer Changes
------- ---------- -------
2009-12-23 Jonno Downes TCP and telnet bugfixes, vt100 emulation, XMODEM support
2009-10-31 Jonno Downes Added Web Application Server functions
2009-08-02 Jonno Downes More TCP functionality, includes telnet
2009-07-12 Jonno Downes Initial TCP implementation (use -DTCP to include)