a2d/desktop/ovl7.s

456 lines
13 KiB
ArmAsm
Raw Normal View History

2018-03-05 05:36:00 +00:00
;;; ============================================================
2018-02-22 03:20:13 +00:00
;;; Overlay for Selector (part of it, anyway)
2018-03-05 05:36:00 +00:00
;;; ============================================================
2018-02-22 03:20:13 +00:00
2018-02-25 23:19:38 +00:00
.proc selector_overlay
.org $7000
2018-02-22 03:20:13 +00:00
L7000: stx L73A9
sty L73AA
2018-05-08 02:35:36 +00:00
jsr common_overlay::create_common_dialog
2018-02-22 03:20:13 +00:00
jsr L7101
jsr L70AD
2018-05-17 15:54:22 +00:00
jsr common_overlay::device_on_line
2018-02-22 05:28:13 +00:00
lda path_buf0
2018-02-22 03:20:13 +00:00
beq L7056
2018-05-18 16:07:41 +00:00
addr_call common_overlay::adjust_filename_case, path_buf0
2018-02-22 05:28:13 +00:00
ldy path_buf0
L7021: lda path_buf0,y
2018-11-23 17:50:47 +00:00
sta common_overlay::path_buf,y
2018-02-22 03:20:13 +00:00
dey
bpl L7021
2018-02-26 03:02:34 +00:00
jsr common_overlay::L5F49
2018-02-22 05:28:13 +00:00
ldy path_buf0
L7030: lda path_buf0,y
cmp #'/'
2018-02-22 03:20:13 +00:00
beq L7044
dey
cpy #$01
bne L7030
lda #$00
2018-02-22 05:28:13 +00:00
sta path_buf0
2018-02-22 03:20:13 +00:00
jmp L7056
L7044: ldx #$00
L7046: iny
inx
2018-02-22 05:28:13 +00:00
lda path_buf0,y
2018-02-22 03:20:13 +00:00
sta L709D,x
2018-02-22 05:28:13 +00:00
cpy path_buf0
2018-02-22 03:20:13 +00:00
bne L7046
stx L709D
2018-02-26 03:02:34 +00:00
L7056: jsr common_overlay::L5F5B
2018-02-22 03:20:13 +00:00
lda #$00
bcs L706A
2018-11-23 17:50:47 +00:00
addr_call common_overlay::L6516, L709D
sta LD920
2018-02-26 03:02:34 +00:00
jsr common_overlay::L6586
L706A: jsr common_overlay::L6163
jsr common_overlay::L61B1
jsr common_overlay::L606D
2018-02-22 05:28:13 +00:00
lda path_buf0
2018-02-22 03:20:13 +00:00
bne L707B
2018-12-18 04:22:29 +00:00
jsr common_overlay::jt_prep_path
2018-11-23 22:33:37 +00:00
L707B: copy #1, path_buf2
copy #' ', path_buf2+1
2018-12-18 04:22:29 +00:00
jsr common_overlay::jt_redraw_input
2018-12-18 04:13:02 +00:00
jsr common_overlay::redraw_f2
2018-11-23 22:33:37 +00:00
copy #1, path_buf2
copy #' ', path_buf2+1
2018-02-22 03:20:13 +00:00
lda #$FF
2018-11-23 17:50:47 +00:00
sta LD8EC
2018-02-26 03:02:34 +00:00
jmp common_overlay::L5106
2018-02-22 03:20:13 +00:00
2018-03-05 05:36:00 +00:00
;;; ============================================================
2018-02-22 03:20:13 +00:00
L709D: .res 16, 0
2018-03-05 05:36:00 +00:00
;;; ============================================================
2018-02-22 03:20:13 +00:00
2018-12-18 03:01:37 +00:00
L70AD: ldx jt_pathname
L70B0: lda jt_pathname+1,x
2018-05-17 15:54:22 +00:00
sta common_overlay::jump_table,x
2018-02-22 03:20:13 +00:00
dex
2018-12-18 03:01:37 +00:00
lda jt_pathname+1,x
2018-05-17 15:54:22 +00:00
sta common_overlay::jump_table,x
2018-02-22 03:20:13 +00:00
dex
dex
bpl L70B0
lda #$00
2018-11-23 17:50:47 +00:00
sta common_overlay::L51AE
2018-02-22 03:20:13 +00:00
lda #$80
2018-11-23 17:50:47 +00:00
sta common_overlay::L5104
2018-11-23 22:33:37 +00:00
copy #1, path_buf2
copy #GLYPH_INSPT, path_buf2+1
2018-03-15 04:10:08 +00:00
lda winfo_entrydlg
2018-05-18 06:54:10 +00:00
jsr common_overlay::set_port_for_window
2018-02-22 03:20:13 +00:00
lda L73A9
jsr L7467
lda L73AA
jsr L747B
lda #$80
2018-11-23 17:50:47 +00:00
sta common_overlay::L5103
copy16 #L73AB, common_overlay::L531B+1
copy16 #L74F4, common_overlay::L59B9::key_meta_digit+1
2018-02-22 03:20:13 +00:00
rts
2018-03-15 04:10:08 +00:00
L7101: lda winfo_entrydlg
2018-05-18 06:54:10 +00:00
jsr common_overlay::set_port_for_window
2018-02-22 05:28:13 +00:00
lda path_buf0
2018-02-22 03:20:13 +00:00
beq L7116
addr_call common_overlay::L5E0A, edit_an_entry_label
2018-02-22 03:20:13 +00:00
jmp L711D
L7116: addr_call common_overlay::L5E0A, add_an_entry_label
L711D: addr_call common_overlay::L5E6F, enter_the_full_pathname_label2
2018-03-02 02:25:42 +00:00
MGTK_RELAY_CALL MGTK::SetPenMode, penXOR ; penXOR
2018-05-08 02:35:36 +00:00
MGTK_RELAY_CALL MGTK::FrameRect, common_input1_rect
MGTK_RELAY_CALL MGTK::FrameRect, common_input2_rect
addr_call common_overlay::L5E57, enter_the_full_pathname_label1
addr_call common_overlay::L5E6F, enter_the_name_to_appear_label
MGTK_RELAY_CALL MGTK::MoveTo, pos_D922
2018-05-08 02:35:36 +00:00
addr_call common_overlay::draw_string, add_a_new_entry_to_label
MGTK_RELAY_CALL MGTK::MoveTo, pos_D926
2018-05-08 02:35:36 +00:00
addr_call common_overlay::draw_string, run_list_label
MGTK_RELAY_CALL MGTK::MoveTo, pos_D92A
2018-05-08 02:35:36 +00:00
addr_call common_overlay::draw_string, other_run_list_label
MGTK_RELAY_CALL MGTK::MoveTo, pos_D92E
2018-05-08 02:35:36 +00:00
addr_call common_overlay::draw_string, down_load_label
MGTK_RELAY_CALL MGTK::MoveTo, pos_D932
2018-05-08 02:35:36 +00:00
addr_call common_overlay::draw_string, at_first_boot_label
MGTK_RELAY_CALL MGTK::MoveTo, pos_D936
2018-05-08 02:35:36 +00:00
addr_call common_overlay::draw_string, at_first_use_label
MGTK_RELAY_CALL MGTK::MoveTo, pos_D93A
2018-05-08 02:35:36 +00:00
addr_call common_overlay::draw_string, never_label
2018-03-02 02:25:42 +00:00
MGTK_RELAY_CALL MGTK::SetPenMode, penXOR
MGTK_RELAY_CALL MGTK::FrameRect, rect_D93E
MGTK_RELAY_CALL MGTK::FrameRect, rect_D946
MGTK_RELAY_CALL MGTK::FrameRect, rect_D94E
MGTK_RELAY_CALL MGTK::FrameRect, rect_D956
MGTK_RELAY_CALL MGTK::FrameRect, rect_D95E
2018-02-22 05:28:13 +00:00
MGTK_RELAY_CALL MGTK::InitPort, grafport3
MGTK_RELAY_CALL MGTK::SetPort, grafport3
2018-02-22 03:20:13 +00:00
rts
2018-03-05 05:36:00 +00:00
;;; ============================================================
2018-02-22 03:20:13 +00:00
.byte $00
2018-12-18 03:01:37 +00:00
jt_pathname: .byte $29
2018-11-23 17:50:47 +00:00
jump_table_entry L725D
jump_table_entry L732F
2018-12-18 04:13:02 +00:00
jump_table_entry common_overlay::blink_f1_ip
jump_table_entry common_overlay::redraw_f1
2018-12-18 04:36:49 +00:00
jump_table_entry common_overlay::strip_f1_path_segment
2018-12-18 04:13:02 +00:00
jump_table_entry common_overlay::jt_handle_f1_tbd05
2018-12-18 04:22:29 +00:00
jump_table_entry common_overlay::prep_path_buf0
2018-12-18 03:43:25 +00:00
jump_table_entry common_overlay::handle_f1_other_key
2018-12-18 03:11:26 +00:00
jump_table_entry common_overlay::handle_f1_delete_key
jump_table_entry common_overlay::handle_f1_left_key
jump_table_entry common_overlay::handle_f1_right_key
jump_table_entry common_overlay::handle_f1_meta_left_key
jump_table_entry common_overlay::handle_f1_meta_right_key
jump_table_entry common_overlay::handle_f1_click
2018-02-22 03:20:13 +00:00
2018-12-18 03:01:37 +00:00
jt_entry_name: .byte $29
2018-11-23 17:50:47 +00:00
jump_table_entry L72CD
jump_table_entry L736C
2018-12-18 04:13:02 +00:00
jump_table_entry common_overlay::blink_f2_ip
jump_table_entry common_overlay::redraw_f2
2018-12-18 04:36:49 +00:00
jump_table_entry common_overlay::strip_f2_path_segment
2018-12-18 04:13:02 +00:00
jump_table_entry common_overlay::jt_handle_f2_tbd05
2018-12-18 04:22:29 +00:00
jump_table_entry common_overlay::prep_path_buf1
2018-12-18 03:43:25 +00:00
jump_table_entry common_overlay::handle_f2_other_key
2018-12-18 03:11:26 +00:00
jump_table_entry common_overlay::handle_f2_delete_key
jump_table_entry common_overlay::handle_f2_left_key
jump_table_entry common_overlay::handle_f2_right_key
jump_table_entry common_overlay::handle_f2_meta_left_key
jump_table_entry common_overlay::handle_f2_meta_right_key
jump_table_entry common_overlay::handle_f2_click
2018-02-22 03:20:13 +00:00
2018-03-05 05:36:00 +00:00
;;; ============================================================
2018-02-22 03:20:13 +00:00
2018-11-23 22:33:37 +00:00
L725D: copy #1, path_buf2
copy #' ', path_buf2+1
2018-12-18 04:22:29 +00:00
jsr common_overlay::jt_redraw_input
2018-12-18 03:01:37 +00:00
ldx jt_entry_name
L726D: lda jt_entry_name+1,x
2018-11-23 17:50:47 +00:00
sta common_overlay::jump_table,x
2018-02-22 03:20:13 +00:00
dex
2018-12-18 03:01:37 +00:00
lda jt_entry_name+1,x
2018-11-23 17:50:47 +00:00
sta common_overlay::jump_table,x
2018-02-22 03:20:13 +00:00
dex
dex
bpl L726D
lda #$80
2018-11-23 17:50:47 +00:00
sta common_overlay::L51AE
sta common_overlay::L5105
lda LD8F0
sta LD8F1
2018-02-22 03:20:13 +00:00
lda #$00
2018-11-23 17:50:47 +00:00
sta LD8F0
lda path_buf1
2018-02-22 03:20:13 +00:00
bne L72BF
lda #$00
sta path_buf1
2018-02-22 05:28:13 +00:00
ldx path_buf0
2018-02-22 03:20:13 +00:00
beq L72BF
2018-02-22 05:28:13 +00:00
L72A0: lda path_buf0,x
2018-02-22 03:20:13 +00:00
cmp #$2F
beq L72AD
dex
bne L72A0
jmp L72BF
L72AD: ldy #$00
L72AF: iny
inx
2018-02-22 05:28:13 +00:00
lda path_buf0,x
sta path_buf1,y
2018-02-22 05:28:13 +00:00
cpx path_buf0
2018-02-22 03:20:13 +00:00
bne L72AF
sty path_buf1
2018-11-23 22:33:37 +00:00
L72BF: copy #1, path_buf2
copy #GLYPH_INSPT, path_buf2+1
2018-12-18 04:22:29 +00:00
jsr common_overlay::jt_redraw_input
2018-02-22 03:20:13 +00:00
rts
2018-11-23 17:50:47 +00:00
L72CD: addr_call common_overlay::L647C, path_buf0
2018-02-22 03:20:13 +00:00
bne L72E2
lda path_buf1
2018-02-22 03:20:13 +00:00
beq L72E7
cmp #$0F
bcs L72E8
jmp L72EE
L72E2: lda #ERR_INVALID_PATHNAME
2018-02-25 07:19:29 +00:00
jsr JUMP_TABLE_ALERT_0
2018-02-22 03:20:13 +00:00
L72E7: rts
L72E8: lda #ERR_NAME_TOO_LONG
2018-02-25 07:19:29 +00:00
jsr JUMP_TABLE_ALERT_0
2018-02-22 03:20:13 +00:00
rts
2018-02-22 05:28:13 +00:00
L72EE: MGTK_RELAY_CALL MGTK::InitPort, grafport3
MGTK_RELAY_CALL MGTK::SetPort, grafport3
2018-03-15 03:38:47 +00:00
MGTK_RELAY_CALL MGTK::CloseWindow, winfo_entrydlg_file_picker
2018-03-15 04:10:08 +00:00
MGTK_RELAY_CALL MGTK::CloseWindow, winfo_entrydlg
2018-11-23 17:50:47 +00:00
sta LD8EC
jsr common_overlay::set_cursor_pointer
2018-11-23 22:33:37 +00:00
copy16 #common_overlay::noop, common_overlay::L59B9::key_meta_digit+1
2018-11-23 17:50:47 +00:00
ldx common_overlay::stash_stack
2018-02-22 03:20:13 +00:00
txs
ldx L73A9
ldy L73AA
2018-02-24 05:11:20 +00:00
return #$00
2018-02-22 03:20:13 +00:00
2018-11-23 17:50:47 +00:00
L732F: MGTK_RELAY_CALL MGTK::InitPort, grafport3
2018-02-22 05:28:13 +00:00
MGTK_RELAY_CALL MGTK::SetPort, grafport3
2018-03-15 03:38:47 +00:00
MGTK_RELAY_CALL MGTK::CloseWindow, winfo_entrydlg_file_picker
2018-03-15 04:10:08 +00:00
MGTK_RELAY_CALL MGTK::CloseWindow, winfo_entrydlg
2018-02-22 03:20:13 +00:00
lda #$00
2018-11-23 17:50:47 +00:00
sta LD8EC
jsr common_overlay::set_cursor_pointer
2018-11-23 22:33:37 +00:00
copy16 #common_overlay::noop, common_overlay::L59B9::key_meta_digit+1
2018-11-23 17:50:47 +00:00
ldx common_overlay::stash_stack
2018-02-22 03:20:13 +00:00
txs
2018-02-24 05:11:20 +00:00
return #$FF
2018-02-22 03:20:13 +00:00
2018-11-23 22:33:37 +00:00
L736C: copy #1, path_buf2
copy #' ', path_buf2+1
2018-12-18 04:22:29 +00:00
jsr common_overlay::jt_redraw_input
2018-12-18 03:01:37 +00:00
ldx jt_pathname
L737C: lda jt_pathname+1,x
2018-11-23 17:50:47 +00:00
sta common_overlay::jump_table,x
2018-02-22 03:20:13 +00:00
dex
2018-12-18 03:01:37 +00:00
lda jt_pathname+1,x
2018-11-23 17:50:47 +00:00
sta common_overlay::jump_table,x
2018-02-22 03:20:13 +00:00
dex
dex
bpl L737C
2018-11-23 22:33:37 +00:00
copy #1, path_buf2
copy #GLYPH_INSPT, path_buf2+1
2018-12-18 04:22:29 +00:00
jsr common_overlay::jt_redraw_input
2018-02-22 03:20:13 +00:00
lda #$00
2018-11-23 17:50:47 +00:00
sta common_overlay::L5105
sta common_overlay::L51AE
lda LD8F1
sta LD8F0
2018-02-22 03:20:13 +00:00
rts
L73A9: .byte 0
L73AA: .byte 0
2018-11-23 17:50:47 +00:00
L73AB: MGTK_RELAY_CALL MGTK::InRect, rect_D966
2018-02-25 21:47:06 +00:00
cmp #MGTK::inrect_inside
2018-05-18 06:54:10 +00:00
bne :+
2018-02-22 03:20:13 +00:00
jmp L73FE
2018-05-18 06:54:10 +00:00
: MGTK_RELAY_CALL MGTK::InRect, rect_D96E
2018-02-25 21:47:06 +00:00
cmp #MGTK::inrect_inside
2018-05-18 06:54:10 +00:00
bne :+
2018-02-22 03:20:13 +00:00
jmp L7413
2018-05-18 06:54:10 +00:00
: MGTK_RELAY_CALL MGTK::InRect, rect_D976
2018-02-25 21:47:06 +00:00
cmp #MGTK::inrect_inside
2018-05-18 06:54:10 +00:00
bne :+
2018-02-22 03:20:13 +00:00
jmp L7428
2018-05-18 06:54:10 +00:00
: MGTK_RELAY_CALL MGTK::InRect, rect_D97E
2018-02-25 21:47:06 +00:00
cmp #MGTK::inrect_inside
2018-05-18 06:54:10 +00:00
bne :+
2018-02-22 03:20:13 +00:00
jmp L743D
2018-05-18 06:54:10 +00:00
: MGTK_RELAY_CALL MGTK::InRect, rect_D986
2018-02-25 21:47:06 +00:00
cmp #MGTK::inrect_inside
2018-05-18 06:54:10 +00:00
bne :+
2018-02-22 03:20:13 +00:00
jmp L7452
2018-05-18 06:54:10 +00:00
: return #0
2018-02-22 03:20:13 +00:00
L73FE: lda L73A9
cmp #1
beq L7410
jsr L7467
lda #1
sta L73A9
jsr L7467
2018-02-24 05:11:20 +00:00
L7410: return #$FF
2018-02-22 03:20:13 +00:00
L7413: lda L73A9
cmp #2
beq L7425
jsr L7467
lda #2
sta L73A9
jsr L7467
2018-02-24 05:11:20 +00:00
L7425: return #$FF
2018-02-22 03:20:13 +00:00
L7428: lda L73AA
cmp #1
beq L743A
jsr L747B
lda #1
sta L73AA
jsr L747B
2018-02-24 05:11:20 +00:00
L743A: return #$FF
2018-02-22 03:20:13 +00:00
L743D: lda L73AA
cmp #2
beq L744F
jsr L747B
lda #2
sta L73AA
jsr L747B
2018-02-24 05:11:20 +00:00
L744F: return #$FF
2018-02-22 03:20:13 +00:00
L7452: lda L73AA
cmp #3
beq L7464
jsr L747B
lda #3
sta L73AA
jsr L747B
2018-02-24 05:11:20 +00:00
L7464: return #$FF
2018-02-22 03:20:13 +00:00
L7467: cmp #1
bne L7473
2018-11-23 17:50:47 +00:00
addr_call draw_inset_rect, rect_D93E
2018-02-22 03:20:13 +00:00
rts
2018-11-23 17:50:47 +00:00
L7473: addr_call draw_inset_rect, rect_D946
2018-02-22 03:20:13 +00:00
rts
L747B: cmp #1
bne L7487
2018-11-23 17:50:47 +00:00
addr_call draw_inset_rect, rect_D94E
2018-02-22 03:20:13 +00:00
rts
L7487: cmp #2
bne L7493
2018-11-23 17:50:47 +00:00
addr_call draw_inset_rect, rect_D956
2018-02-22 03:20:13 +00:00
rts
2018-11-23 17:50:47 +00:00
L7493: addr_call draw_inset_rect, rect_D95E
2018-02-22 03:20:13 +00:00
rts
2018-11-23 17:50:47 +00:00
;;; ============================================================
;;; Draw rect inset by 2px. Pointer to Rect in A,X.
.proc draw_inset_rect
ptr := $06
;; Copy to scratch rect
stax ptr
ldy #.sizeof(MGTK::Rect)-1
: lda (ptr),y
sta rect_scratch,y
2018-02-22 03:20:13 +00:00
dey
2018-11-23 17:50:47 +00:00
bpl :-
lda rect_scratch::x1
2018-02-22 03:20:13 +00:00
clc
adc #2
2018-11-23 17:50:47 +00:00
sta rect_scratch::x1
bcc :+
inc rect_scratch::x1+1
: lda rect_scratch::y1
2018-02-22 03:20:13 +00:00
clc
adc #2
2018-11-23 17:50:47 +00:00
sta rect_scratch::y1
bcc :+
inc rect_scratch::y1+1
: lda rect_scratch::x2
2018-02-22 03:20:13 +00:00
sec
sbc #2
2018-11-23 17:50:47 +00:00
sta rect_scratch::x2
bcs :+
dec rect_scratch::x2+1
: lda rect_scratch::y2
2018-02-22 03:20:13 +00:00
sec
sbc #2
2018-11-23 17:50:47 +00:00
sta rect_scratch::y2
bcs :+
dec rect_scratch::y2+1
: MGTK_RELAY_CALL MGTK::SetPenMode, penXOR
MGTK_RELAY_CALL MGTK::PaintRect, rect_scratch
2018-02-22 03:20:13 +00:00
rts
2018-11-23 17:50:47 +00:00
.endproc
;;; ============================================================
2018-02-22 03:20:13 +00:00
L74F4: lda winfo_entrydlg
2018-05-18 06:54:10 +00:00
jsr common_overlay::set_port_for_window
lda event_modifiers
2018-02-22 03:20:13 +00:00
bne L7500
rts
L7500: lda event_key
and #CHAR_MASK
2018-02-22 03:20:13 +00:00
cmp #'1'
bne L750C
jmp L73FE
L750C: cmp #'2'
bne L7513
jmp L7413
L7513: cmp #'3'
bne L751A
jmp L7428
L751A: cmp #'4'
bne L7521
jmp L743D
L7521: cmp #'5'
bne L7528
jmp L7452
L7528: rts
2018-03-05 05:36:00 +00:00
;;; ============================================================
2018-02-25 23:19:38 +00:00
2018-02-22 03:20:13 +00:00
PAD_TO $7800
2018-02-25 23:19:38 +00:00
.endproc ; selector_overlay