From 0df937be7c59bab66196ab02a45da97012309ef0 Mon Sep 17 00:00:00 2001 From: jonnosan Date: Wed, 30 Dec 2009 02:00:21 +0000 Subject: [PATCH] git-svn-id: http://svn.code.sf.net/p/netboot65/code@237 93682198-c243-4bdb-bd91-e943c89aac3b --- CHANGES.txt | 4 ---- client/inc/version.i | 2 +- client/ip65/xmodem.s | 34 +++++++++++++++++++++++++------ dist/make_dist.rb | 8 ++++++-- dist/version_number.txt | 2 +- doc/CHANGES.txt | 25 +++++++++++++++++++++++ doc/README.C64.html | 45 ++++++++++++++++++++++++++++++----------- doc/ip65.html | 1 + 8 files changed, 95 insertions(+), 26 deletions(-) delete mode 100644 CHANGES.txt create mode 100644 doc/CHANGES.txt diff --git a/CHANGES.txt b/CHANGES.txt deleted file mode 100644 index 072a927..0000000 --- a/CHANGES.txt +++ /dev/null @@ -1,4 +0,0 @@ -- telnet now supports vt100 emulation (thanks to Lars Stollenwerk) -- gopher: fixed bug preventing connection to jamtronix.com - - diff --git a/client/inc/version.i b/client/inc/version.i index 36b6297..6b1eae0 100644 --- a/client/inc/version.i +++ b/client/inc/version.i @@ -1 +1 @@ -.byte "1.0.25" +.byte "1.0.27" diff --git a/client/ip65/xmodem.s b/client/ip65/xmodem.s index afbd3f4..c2c67ae 100644 --- a/client/ip65/xmodem.s +++ b/client/ip65/xmodem.s @@ -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 diff --git a/dist/make_dist.rb b/dist/make_dist.rb index 9e24010..a2d0a0d 100644 --- a/dist/make_dist.rb +++ b/dist/make_dist.rb @@ -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"], diff --git a/dist/version_number.txt b/dist/version_number.txt index 855f702..3f11ef6 100644 --- a/dist/version_number.txt +++ b/dist/version_number.txt @@ -1 +1 @@ -1.0.25 \ No newline at end of file +1.0.27 \ No newline at end of file diff --git a/doc/CHANGES.txt b/doc/CHANGES.txt new file mode 100644 index 0000000..e102ae9 --- /dev/null +++ b/doc/CHANGES.txt @@ -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 + diff --git a/doc/README.C64.html b/doc/README.C64.html index 976748d..98a018b 100644 --- a/doc/README.C64.html +++ b/doc/README.C64.html @@ -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:

- - - - - + + + + + +
filenameflavourmediacommand to use in VICE
netboot.binUDP only (+ BASIC)standard 8KB cartx64.exe -cart8 netboot.bin
kipperkart.binUDP/TCP (no BASIC)standard 16KB cartx64.exe -cart16 kipperkart.bin
kipperterm.bintelnet & gopher clientstandard 16KB cartx64.exe -cart16 kipperterm.bin
kipperkart_rr.binUDP/TCP (no BASIC)Retro Replay cart imagex64.exe -cartrr kipperkart_rr.bin
filenameflavourcartidge size
netboot.binUDP only (+ BASIC)8KB cart
kipperkart.binUDP/TCP (no BASIC)16KB cart
kippergo.binbasic telnet & gopher client16KB cart
kipperterm.binenhanced telnet16KB cart
@@ -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. -

KIPPERTERM cart

+

KIPPERGO cart