diff --git a/client/carts/kipperkart.s b/client/carts/kipperkart.s index 192b085..6918c71 100644 --- a/client/carts/kipperkart.s +++ b/client/carts/kipperkart.s @@ -56,6 +56,9 @@ .import cfg_dns .import cfg_tftp_server + .import timer_read + .import timer_timeout + .import print_ascii_as_native .import print_dotted_quad .import print_hex @@ -91,7 +94,7 @@ .bss -temp_ptr: .res 2 +filemask_ptr: .res 2 .segment "SELF_MODIFIED_CODE" call_downloaded_prg: @@ -261,6 +264,7 @@ main_menu: @tftp_boot: ldax #tftp_dir_filemask + stax filemask_ptr jsr get_tftp_directory_listing bcs return_to_main @@ -313,10 +317,14 @@ exit_cart_via_ax: jmp call_downloaded_prg get_tftp_directory_listing: - stax temp_ptr -@get_listing: + stax kipper_param_buffer+KPR_TFTP_FILENAME - + stax copy_src + ldax #last_dir_mask + stax copy_dest + ldax #$80 + jsr copymem + ldax #directory_buffer stax kipper_param_buffer+KPR_TFTP_POINTER @@ -358,7 +366,7 @@ get_tftp_directory_listing: bne @look_for_trailing_zero ; got trailing zero - ldax temp_ptr + ldax filemask_ptr clc adc #1 ;skip the leading '$' bcc :+ @@ -368,7 +376,7 @@ get_tftp_directory_listing: ldax #$07 jsr copymem ldax get_value_of_axy+1 - jmp @get_listing + jmp get_tftp_directory_listing @not_directory_name: ldax get_value_of_axy+1 @@ -455,6 +463,9 @@ error_handler: netplay_sid: ldax #sid_filemask + stax filemask_ptr +@get_sid_dir: + jsr get_tftp_directory_listing bcc @sid_filename_set jmp error_handler @@ -477,13 +488,27 @@ netplay_sid: jsr load_sid jsr play_sid - - jmp main_menu + jsr print_cr +;wait a little bit to allow the RUN/STOP key to be released + jsr timer_read + inx ;add 256 ms + inx ;add 256 ms +: + jsr timer_timeout + bcs :- + + jsr ip65_process + lda #0 + sta $cb + + ldax #last_dir_mask + jsr @get_sid_dir d64_download: ldax #d64_filemask + stax filemask_ptr jsr get_tftp_directory_listing bcc @d64_filename_set jmp main_menu @@ -672,6 +697,9 @@ resolving: remote_host: .byte "hostname (return to quit)",10,": ",0 +.segment "APP_SCRATCH" +last_dir_mask: .res 128 + ;-- LICENSE FOR kipperkart.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 diff --git a/client/inc/version.i b/client/inc/version.i index 6b1eae0..1fdb253 100644 --- a/client/inc/version.i +++ b/client/inc/version.i @@ -1 +1 @@ -.byte "1.0.27" +.byte "1.0.28" diff --git a/dist/version_number.txt b/dist/version_number.txt index 3f11ef6..f8536a4 100644 --- a/dist/version_number.txt +++ b/dist/version_number.txt @@ -1 +1 @@ -1.0.27 \ No newline at end of file +1.0.28 \ No newline at end of file diff --git a/doc/CHANGES.txt b/doc/CHANGES.txt index c73c770..2462b05 100644 --- a/doc/CHANGES.txt +++ b/doc/CHANGES.txt @@ -1,3 +1,6 @@ +v1.0.28 +- CHANGE: after playing a SID, go back to last viewed dir listing, not main menu + v1.0.27 - FIX: more than 3 dots in a dotted quad would crash the hostname resolver - FIX: parse_integer was treating digit '9' as marking end of string :-( @@ -11,7 +14,7 @@ v1.0.26 - ADD: change border colour to indicate telnet connect/disconnect v1.0.25 -- FIX: vt100 emulation was leaving a cursor after a "clear to end of line" command ( ]J ) +- 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