diff --git a/desktop/ovl4.s b/desktop/ovl4.s index 5adf9eb..44ee3be 100644 --- a/desktop/ovl4.s +++ b/desktop/ovl4.s @@ -337,7 +337,7 @@ L542F: lda screentowindow_windowy L5438: lda LD920 bmi L5446 - jsr jt_04 + jsr jt_strip_path_segment lda LD920 jsr L6274 L5446: lda screentowindow_windowy @@ -606,10 +606,10 @@ L56A2: jsr L5F49 sta LD920 bit L56E2 bmi L56D6 - jsr jt_04 + jsr jt_strip_path_segment lda LD920 bmi L56DC - jsr jt_04 + jsr jt_strip_path_segment jmp L56DC L56D6: jsr jt_prep_path @@ -1025,7 +1025,7 @@ key_meta_digit: L5B37: rts L5B38: jsr L6274 - jsr jt_04 + jsr jt_strip_path_segment inc LD920 lda LD920 jmp update_list_selection @@ -1043,7 +1043,7 @@ L5B47: lda #0 L5B58: rts L5B59: jsr L6274 - jsr jt_04 + jsr jt_strip_path_segment dec LD920 lda LD920 jmp update_list_selection @@ -1073,7 +1073,7 @@ L5B83: jsr L5B9D lda LD920 bmi L5B99 jsr L6274 - jsr jt_04 + jsr jt_strip_path_segment L5B99: pla jmp update_list_selection @@ -1135,7 +1135,7 @@ L5BF5: .byte 0 L5C02: rts L5C03: jsr L6274 - jsr jt_04 + jsr jt_strip_path_segment L5C09: lda #$00 jmp update_list_selection .endproc @@ -1153,7 +1153,7 @@ L5C1E: rts L5C1F: dex txa jsr L6274 - jsr jt_04 + jsr jt_strip_path_segment L5C27: ldx $177F dex txa @@ -2864,8 +2864,8 @@ jump_table: jt_handle_ok: jmp 0 jt_handle_cancel: jmp 0 jt_blink_ip: jmp 0 -jt_redraw_input: jmp 0 -jt_04: jmp 0 +jt_redraw_input: jmp 0 +jt_strip_path_segment: jmp 0 jt_05: jmp 0 jt_prep_path: jmp 0 jt_handle_other_key: jmp 0 @@ -2878,80 +2878,106 @@ jt_handle_click: jmp 0 ;;; ============================================================ -L6D48: stax $06 +.proc append_to_path_buf0 + ptr := $06 + + stax ptr + ldx path_buf0 lda #'/' sta path_buf0+1,x inc path_buf0 - ldy #$00 - lda ($06),y + + ldy #0 + lda (ptr),y tay clc adc path_buf0 pha tax -L6D62: lda ($06),y + +: lda (ptr),y sta path_buf0,x dey dex cpx path_buf0 - bne L6D62 + bne :- + pla sta path_buf0 rts +.endproc + +;;; ============================================================ + +.proc append_to_path_buf1 + ptr := $06 + + stax ptr -L6D73: stax $06 ldx path_buf1 lda #'/' sta path_buf1+1,x inc path_buf1 + ldy #$00 - lda ($06),y + lda (ptr),y tay clc adc path_buf1 pha tax -L6D8D: lda ($06),y + +: lda (ptr),y sta path_buf1,x dey dex cpx path_buf1 - bne L6D8D + bne :- + pla sta path_buf1 rts - -L6D9E: ldx path_buf0 - cpx #$00 - beq L6DAF - dec path_buf0 - lda path_buf0,x - cmp #'/' - bne L6D9E -L6DAF: rts - -L6DB0: ldx path_buf1 - cpx #$00 - beq L6DC1 - dec path_buf1 - lda path_buf1,x - cmp #'/' - bne L6DB0 -L6DC1: rts +.endproc ;;; ============================================================ -.proc jt_handle_f1_tbd04 - jsr L6D9E +.proc strip_path_buf0_segment +: ldx path_buf0 + cpx #0 + beq :+ + dec path_buf0 + lda path_buf0,x + cmp #'/' + bne :- +: rts +.endproc + +;;; ============================================================ + +.proc strip_path_buf1_segment +: ldx path_buf1 + cpx #0 + beq :+ + dec path_buf1 + lda path_buf1,x + cmp #'/' + bne :- +: rts +.endproc + +;;; ============================================================ + +.proc strip_f1_path_segment + jsr strip_path_buf0_segment jsr jt_redraw_input rts .endproc ;;; ============================================================ -.proc jt_handle_f2_tbd04 - jsr L6DB0 +.proc strip_f2_path_segment + jsr strip_path_buf1_segment jsr jt_redraw_input rts .endproc @@ -2965,39 +2991,46 @@ jt_handle_f1_tbd05: jt_handle_f2_tbd05: lda #$80 -L6DD6: sta L6E1C - copy16 #$1800, $06 +.proc L6DD6 + ptr := $06 + + sta flag + copy16 #$1800, ptr ldx LD920 lda $1780,x and #$7F - ldx #$00 - stx L6E1B + + ldx #0 + stx hi + asl a ; * 16 + rol hi asl a - rol L6E1B + rol hi asl a - rol L6E1B + rol hi asl a - rol L6E1B - asl a - rol L6E1B + rol hi clc - adc $06 + adc ptr tay - lda L6E1B - adc $07 + lda hi + adc ptr+1 tax tya - bit L6E1C - bpl L6E14 - jsr L6D73 - jmp L6E17 -L6E14: jsr L6D48 -L6E17: jsr jt_redraw_input + bit flag + bpl f1 + jsr append_to_path_buf1 + jmp :+ + +f1: jsr append_to_path_buf0 + +: jsr jt_redraw_input rts -L6E1B: .byte 0 -L6E1C: .byte 0 +hi: .byte 0 ; high byte +flag: .byte 0 +.endproc ;;; ============================================================ diff --git a/desktop/ovl5.s b/desktop/ovl5.s index d4e848f..faf64b8 100644 --- a/desktop/ovl5.s +++ b/desktop/ovl5.s @@ -56,7 +56,7 @@ jt_source_filename: jump_table_entry L71D8 jump_table_entry common_overlay::blink_f1_ip jump_table_entry common_overlay::redraw_f1 - jump_table_entry common_overlay::jt_handle_f1_tbd04 + jump_table_entry common_overlay::strip_f1_path_segment jump_table_entry common_overlay::jt_handle_f1_tbd05 jump_table_entry common_overlay::prep_path_buf0 jump_table_entry common_overlay::handle_f1_other_key @@ -73,7 +73,7 @@ jt_destination_entries: jump_table_entry L71F9 jump_table_entry common_overlay::blink_f2_ip jump_table_entry common_overlay::redraw_f2 - jump_table_entry common_overlay::jt_handle_f2_tbd04 + jump_table_entry common_overlay::strip_f2_path_segment jump_table_entry common_overlay::jt_handle_f2_tbd05 jump_table_entry common_overlay::prep_path_buf1 jump_table_entry common_overlay::handle_f2_other_key diff --git a/desktop/ovl6.s b/desktop/ovl6.s index 68b48ca..02c5b22 100644 --- a/desktop/ovl6.s +++ b/desktop/ovl6.s @@ -53,7 +53,7 @@ jt_filename: jump_table_entry L70EA jump_table_entry common_overlay::blink_f1_ip jump_table_entry common_overlay::redraw_f1 - jump_table_entry common_overlay::jt_handle_f1_tbd04 + jump_table_entry common_overlay::strip_f1_path_segment jump_table_entry common_overlay::jt_handle_f1_tbd05 jump_table_entry common_overlay::prep_path_buf0 jump_table_entry common_overlay::handle_f1_other_key diff --git a/desktop/ovl7.s b/desktop/ovl7.s index 722716d..08e0e03 100644 --- a/desktop/ovl7.s +++ b/desktop/ovl7.s @@ -142,7 +142,7 @@ jt_pathname: .byte $29 jump_table_entry L732F jump_table_entry common_overlay::blink_f1_ip jump_table_entry common_overlay::redraw_f1 - jump_table_entry common_overlay::jt_handle_f1_tbd04 + jump_table_entry common_overlay::strip_f1_path_segment jump_table_entry common_overlay::jt_handle_f1_tbd05 jump_table_entry common_overlay::prep_path_buf0 jump_table_entry common_overlay::handle_f1_other_key @@ -158,7 +158,7 @@ jt_entry_name: .byte $29 jump_table_entry L736C jump_table_entry common_overlay::blink_f2_ip jump_table_entry common_overlay::redraw_f2 - jump_table_entry common_overlay::jt_handle_f2_tbd04 + jump_table_entry common_overlay::strip_f2_path_segment jump_table_entry common_overlay::jt_handle_f2_tbd05 jump_table_entry common_overlay::prep_path_buf1 jump_table_entry common_overlay::handle_f2_other_key