mirror of
https://github.com/mi57730/a2d.git
synced 2025-04-10 01:37:13 +00:00
disasm: quit routines
This commit is contained in:
parent
983429128f
commit
da715ed9ce
@ -23,6 +23,12 @@ DA_MAX_SIZE := DA_IO_BUFFER - DA_LOAD_ADDRESS
|
||||
;; Can't load DA past I/O Buffer at MAIN $1C00,
|
||||
;; but icon tables start at AUX $1B00 so can't clone there.
|
||||
|
||||
|
||||
;; Quit routine signature/data
|
||||
quit_routine_signature := $D3FF
|
||||
quit_string_1 := $D3EE
|
||||
quit_string_2 := $D3AD
|
||||
|
||||
;;; ============================================================
|
||||
;;; Direct Calls (from main memory)
|
||||
|
||||
|
@ -7,6 +7,18 @@
|
||||
.include "../inc/prodos.inc"
|
||||
.include "../macros.inc"
|
||||
|
||||
;;; ============================================================
|
||||
;;; Locations in Main LC Bank 2 (past end of custom quit routines)
|
||||
|
||||
;; 16 bytes $D395-$D3A4 - set to $FF when entry is copied
|
||||
;; ("down loaded") to RAM Card.
|
||||
entry_copied_flags := $D395
|
||||
|
||||
;; Quit routine signature/data
|
||||
quit_routine_signature := $D3FF ; $00 at start, $C0 mid copy, $80 done
|
||||
quit_string_1 := $D3EE
|
||||
quit_string_2 := $D3AD
|
||||
|
||||
;;; ============================================================
|
||||
.proc copy_desktop_to_ramcard
|
||||
|
||||
@ -194,7 +206,7 @@ match: sta $D3AC
|
||||
|
||||
lda ROMIN2
|
||||
ldx #0
|
||||
jsr stx_lc_d3ff
|
||||
jsr set_quit_routine_signature
|
||||
|
||||
;; Point $8 at $C100
|
||||
lda #0
|
||||
@ -277,13 +289,13 @@ found_slot:
|
||||
bne :-
|
||||
|
||||
ldx #$C0
|
||||
jsr stx_lc_d3ff
|
||||
addr_call copy_to_lc2_b, path0
|
||||
jsr set_quit_routine_signature
|
||||
addr_call set_quit_string_1, path0
|
||||
jsr check_desktop2_on_device
|
||||
bcs :+
|
||||
ldx #$80
|
||||
jsr stx_lc_d3ff
|
||||
jsr copy_2005_to_lc2_a
|
||||
jsr set_quit_routine_signature
|
||||
jsr copy_2005_to_quit_string_2
|
||||
jmp fail
|
||||
|
||||
: lda BUTN1
|
||||
@ -312,7 +324,7 @@ start_copy:
|
||||
jmp fail_copy
|
||||
: dec buffer
|
||||
ldx #$80
|
||||
jsr stx_lc_d3ff
|
||||
jsr set_quit_routine_signature
|
||||
|
||||
ldy buffer
|
||||
: lda buffer,y
|
||||
@ -371,7 +383,7 @@ fail2: lda copy_flag
|
||||
sta path0
|
||||
MLI_CALL SET_PREFIX, set_prefix_params
|
||||
: jsr write_desktop1
|
||||
jsr copy_2005_to_lc2_a
|
||||
jsr copy_2005_to_quit_string_2
|
||||
|
||||
lda #$00
|
||||
sta RAMWORKS_BANK ; ???
|
||||
@ -382,17 +394,19 @@ fail2: lda copy_flag
|
||||
bpl :-
|
||||
jmp copy_selector_entries_to_ramcard
|
||||
|
||||
.proc stx_lc_d3ff
|
||||
;;; ============================================================
|
||||
|
||||
.proc set_quit_routine_signature
|
||||
lda LCBANK2
|
||||
lda LCBANK2
|
||||
stx $D3FF
|
||||
stx quit_routine_signature
|
||||
lda ROMIN2
|
||||
rts
|
||||
.endproc
|
||||
|
||||
.proc copy_to_lc2_b
|
||||
.proc set_quit_string_1
|
||||
ptr := $6
|
||||
target := $D3EE
|
||||
target := quit_string_1
|
||||
|
||||
stax ptr
|
||||
lda LCBANK2
|
||||
@ -408,13 +422,14 @@ fail2: lda copy_flag
|
||||
rts
|
||||
.endproc
|
||||
|
||||
.proc copy_to_lc2_a
|
||||
.proc set_quit_string_2
|
||||
ptr := $6
|
||||
target := $D3AD
|
||||
target := quit_string_2
|
||||
|
||||
stax ptr
|
||||
lda LCBANK2
|
||||
lda LCBANK2
|
||||
|
||||
ldy #0
|
||||
lda (ptr),y
|
||||
tay
|
||||
@ -422,10 +437,13 @@ fail2: lda copy_flag
|
||||
sta target,y
|
||||
dey
|
||||
bpl :-
|
||||
|
||||
lda ROMIN2
|
||||
rts
|
||||
.endproc
|
||||
|
||||
;;; ============================================================
|
||||
|
||||
fail: lda #0
|
||||
sta flag
|
||||
jmp fail2
|
||||
@ -866,8 +884,8 @@ start: MLI_CALL OPEN, open_params
|
||||
|
||||
;;; ============================================================
|
||||
|
||||
.proc copy_2005_to_lc2_a
|
||||
addr_call copy_to_lc2_a, L2005
|
||||
.proc copy_2005_to_quit_string_2
|
||||
addr_call set_quit_string_2, L2005
|
||||
rts
|
||||
.endproc
|
||||
|
||||
@ -968,7 +986,7 @@ prodos_loader_blocks:
|
||||
jsr HOME
|
||||
lda LCBANK2
|
||||
lda LCBANK2
|
||||
lda $D3FF ; ??? last byte of selector routine?
|
||||
lda quit_routine_signature
|
||||
pha
|
||||
lda ROMIN2
|
||||
pla
|
||||
@ -979,7 +997,7 @@ prodos_loader_blocks:
|
||||
lda LCBANK2
|
||||
ldx #$17
|
||||
lda #0
|
||||
: sta $D395,x
|
||||
: sta entry_copied_flags,x
|
||||
dex
|
||||
bpl :-
|
||||
lda ROMIN2
|
||||
@ -1010,7 +1028,7 @@ entry_loop:
|
||||
lda LCBANK2
|
||||
ldx entry_num
|
||||
lda #$FF
|
||||
sta $D395,x
|
||||
sta entry_copied_flags,x
|
||||
lda ROMIN2
|
||||
|
||||
next_entry:
|
||||
@ -1049,7 +1067,7 @@ entry_loop2:
|
||||
adc #8
|
||||
tax
|
||||
lda #$FF
|
||||
sta $D395,x
|
||||
sta entry_copied_flags,x
|
||||
lda ROMIN2
|
||||
next_entry2:
|
||||
inc entry_num
|
||||
@ -1914,8 +1932,8 @@ L38D6: lda L324A,y
|
||||
lda LCBANK2
|
||||
lda LCBANK2
|
||||
|
||||
ldy $D3EE
|
||||
: lda $D3EE,y
|
||||
ldy quit_string_1
|
||||
: lda quit_string_1,y
|
||||
sta L320A,y
|
||||
dey
|
||||
bpl :-
|
||||
|
@ -1164,7 +1164,7 @@ set_penmode_copy:
|
||||
bpl done
|
||||
jsr L4AAD
|
||||
jsr L4A77
|
||||
jsr get_LD3FF
|
||||
jsr get_quit_routine_signature
|
||||
bpl L497A
|
||||
jsr L8F24 ; Condition for this ???
|
||||
bmi done
|
||||
@ -1215,7 +1215,7 @@ L49A6: lda menu_click_params::item_num
|
||||
asl a
|
||||
bmi L49FA
|
||||
bcc L49E0
|
||||
jsr get_LD3FF
|
||||
jsr get_quit_routine_signature
|
||||
beq L49FA
|
||||
lda L49A5
|
||||
jsr L4AEA
|
||||
@ -1226,7 +1226,7 @@ L49A6: lda menu_click_params::item_num
|
||||
bpl L49ED
|
||||
jmp redraw_windows_and_desktop
|
||||
|
||||
L49E0: jsr get_LD3FF
|
||||
L49E0: jsr get_quit_routine_signature
|
||||
beq L49FA
|
||||
lda L49A5
|
||||
jsr L4AEA
|
||||
@ -1315,7 +1315,7 @@ L4AB0: lda buf_win_path,y
|
||||
sta L0800,y
|
||||
dey
|
||||
bpl L4AB0
|
||||
addr_call copy_LD3EE_str, $840
|
||||
addr_call copy_quit_string_1, $840
|
||||
ldy L0800
|
||||
L4AC3: lda L0800,y
|
||||
cmp #'/'
|
||||
@ -1348,12 +1348,13 @@ L4AEA: jsr L4B5F
|
||||
L4AAD := cmd_selector_item::L4AAD
|
||||
|
||||
;;; ============================================================
|
||||
;;; Get quit routine signature byte from Main LC Bank 2.
|
||||
|
||||
.proc get_LD3FF
|
||||
.proc get_quit_routine_signature
|
||||
sta ALTZPOFF
|
||||
lda LCBANK2
|
||||
lda LCBANK2
|
||||
lda LD3FF
|
||||
lda quit_routine_signature
|
||||
tax
|
||||
sta ALTZPON
|
||||
lda LCBANK1
|
||||
@ -1362,14 +1363,14 @@ L4AEA: jsr L4B5F
|
||||
rts
|
||||
.endproc
|
||||
|
||||
.proc copy_LD3EE_str
|
||||
.proc copy_quit_string_1
|
||||
stax @destptr
|
||||
sta ALTZPOFF
|
||||
lda LCBANK2
|
||||
lda LCBANK2
|
||||
|
||||
ldx LD3EE
|
||||
: lda LD3EE,x
|
||||
ldx quit_string_1
|
||||
: lda quit_string_1,x
|
||||
@destptr := *+1
|
||||
sta dummy1234,x
|
||||
dex
|
||||
@ -1381,14 +1382,14 @@ L4AEA: jsr L4B5F
|
||||
rts
|
||||
.endproc
|
||||
|
||||
.proc copy_LD3AD_str
|
||||
.proc copy_quit_string_2
|
||||
stax @destptr
|
||||
sta ALTZPOFF
|
||||
lda LCBANK2
|
||||
lda LCBANK2
|
||||
|
||||
ldx LD3AD
|
||||
: lda LD3AD,x
|
||||
ldx quit_string_2
|
||||
: lda quit_string_2,x
|
||||
@destptr := *+1
|
||||
sta dummy1234,x
|
||||
dex
|
||||
@ -1400,9 +1401,11 @@ L4AEA: jsr L4B5F
|
||||
rts
|
||||
.endproc
|
||||
|
||||
;;; ============================================================
|
||||
|
||||
.proc L4B5F
|
||||
sta L4BB0
|
||||
addr_call copy_LD3EE_str, path_buffer
|
||||
addr_call copy_quit_string_1, path_buffer
|
||||
lda L4BB0
|
||||
jsr a_times_64
|
||||
addax #$DB9E, $06
|
||||
@ -1903,6 +1906,8 @@ fail: rts
|
||||
|
||||
.proc cmd_new_folder_impl
|
||||
|
||||
ptr := $06
|
||||
|
||||
L4F67: .byte $00
|
||||
L4F68: .word 0
|
||||
|
||||
@ -1915,6 +1920,7 @@ path_buffer:
|
||||
start: lda active_window_id
|
||||
sta L4F67
|
||||
yax_call launch_dialog, index_new_folder_dialog, L4F67
|
||||
|
||||
L4FC6: lda active_window_id
|
||||
beq L4FD4
|
||||
jsr window_address_lookup
|
||||
@ -1922,42 +1928,51 @@ L4FC6: lda active_window_id
|
||||
L4FD4: lda #$80
|
||||
sta L4F67
|
||||
yax_call launch_dialog, index_new_folder_dialog, L4F67
|
||||
beq L4FE7
|
||||
jmp L504B
|
||||
|
||||
L4FE7: stx $06+1
|
||||
beq :+
|
||||
jmp done ; Cancelled
|
||||
: stx ptr+1
|
||||
stx L504F
|
||||
sty $06
|
||||
sty ptr
|
||||
sty L504E
|
||||
ldy #$00
|
||||
lda ($06),y
|
||||
|
||||
;; Copy path
|
||||
ldy #0
|
||||
lda (ptr),y
|
||||
tay
|
||||
L4FF6: lda ($06),y
|
||||
: lda (ptr),y
|
||||
sta path_buffer,y
|
||||
dey
|
||||
bpl L4FF6
|
||||
ldx #$03
|
||||
bpl :-
|
||||
|
||||
;; Create with current date
|
||||
ldx #3
|
||||
: lda DATELO,x
|
||||
sta create_params::create_date,x
|
||||
dex
|
||||
bpl :-
|
||||
|
||||
;; Create folder
|
||||
MLI_RELAY_CALL CREATE, create_params
|
||||
beq L5027
|
||||
beq success
|
||||
|
||||
;; Failure
|
||||
jsr DESKTOP_SHOW_ALERT0
|
||||
copy16 L504E, L4F68
|
||||
jmp L4FC6
|
||||
|
||||
rts
|
||||
rts ; ???
|
||||
|
||||
L5027: lda #$40
|
||||
success:
|
||||
lda #$40
|
||||
sta L4F67
|
||||
yax_call launch_dialog, index_new_folder_dialog, L4F67
|
||||
addr_call L6F90, path_buffer
|
||||
sty path_buffer
|
||||
addr_call L6FAF, path_buffer
|
||||
beq L504B
|
||||
beq done
|
||||
jsr L5E78
|
||||
L504B: jmp redraw_windows_and_desktop
|
||||
|
||||
done: jmp redraw_windows_and_desktop
|
||||
|
||||
L504E: .byte 0
|
||||
L504F: .byte 0
|
||||
@ -14916,7 +14931,7 @@ str_system_start: PASCAL_STRING "System/Start"
|
||||
.proc final_setup
|
||||
lda #0
|
||||
sta desktop_main::sys_start_flag
|
||||
jsr desktop_main::get_LD3FF
|
||||
jsr desktop_main::get_quit_routine_signature
|
||||
cmp #$80
|
||||
beq L0EFE
|
||||
MLI_RELAY_CALL GET_PREFIX, get_prefix_params
|
||||
@ -14924,7 +14939,7 @@ str_system_start: PASCAL_STRING "System/Start"
|
||||
dec desktop_main::sys_start_path
|
||||
jmp L0F05
|
||||
|
||||
L0EFE: addr_call desktop_main::copy_LD3AD_str, desktop_main::sys_start_path
|
||||
L0EFE: addr_call desktop_main::copy_quit_string_2, desktop_main::sys_start_path
|
||||
L0F05: ldx desktop_main::sys_start_path
|
||||
|
||||
;; Find last /
|
||||
|
@ -299,15 +299,9 @@ buf_filename2: .res 16, 0
|
||||
buf_win_path: .res 43, 0
|
||||
|
||||
temp_string_buf:
|
||||
.res 45, 0
|
||||
.res 65, 0
|
||||
|
||||
LD3AD: .res 20, 0
|
||||
LD3C1: .res 45, 0
|
||||
|
||||
LD3EE: .res 17, 0
|
||||
LD3FF: .byte 0
|
||||
LD400: .byte 0
|
||||
LD401: .byte 0
|
||||
LD3C1: .res 65, 0
|
||||
|
||||
;;; In common dialog (copy/edit file, add/edit selector entry):
|
||||
;;; * path_buf0 has the contents of the top input field
|
||||
|
@ -24,7 +24,7 @@ L9017: lda $0C00
|
||||
sta LD343
|
||||
lda #$00
|
||||
sta LD343+1
|
||||
jsr L9DED
|
||||
jsr get_quit_routine_signature
|
||||
cmp #$80
|
||||
bne L9015
|
||||
jsr JUMP_TABLE_REDRAW_ALL
|
||||
@ -307,7 +307,7 @@ L9282: lda L938D
|
||||
cmp #$C0
|
||||
beq L92F0
|
||||
sta L938A
|
||||
jsr L9DED
|
||||
jsr get_quit_routine_signature
|
||||
beq L92F0
|
||||
lda L938A
|
||||
beq L92CE
|
||||
@ -1252,10 +1252,10 @@ L9C09: sta warning_dialog_num
|
||||
DEFINE_WRITE_PARAMS write_params, $C00, $800
|
||||
DEFINE_CLOSE_PARAMS flush_close_params
|
||||
|
||||
L9C26: addr_call L9E2A, $1C00
|
||||
L9C26: addr_call copy_quit_string_2, $1C00
|
||||
inc $1C00
|
||||
ldx $1C00
|
||||
lda #$2F
|
||||
lda #'/'
|
||||
sta $1C00,x
|
||||
ldx #$00
|
||||
ldy $1C00
|
||||
@ -1439,46 +1439,58 @@ params: .addr 0
|
||||
|
||||
;;; ============================================================
|
||||
|
||||
L9DED: sta ALTZPOFF
|
||||
.proc get_quit_routine_signature
|
||||
sta ALTZPOFF
|
||||
lda LCBANK2
|
||||
lda LCBANK2
|
||||
lda LD3FF
|
||||
lda quit_routine_signature
|
||||
tax
|
||||
sta ALTZPON
|
||||
lda LCBANK1
|
||||
lda LCBANK1
|
||||
txa
|
||||
rts
|
||||
.endproc
|
||||
|
||||
L9E05: stax @addr
|
||||
.proc copy_quit_string_1
|
||||
stax @addr
|
||||
sta ALTZPOFF
|
||||
lda LCBANK2
|
||||
lda LCBANK2
|
||||
ldx LD3EE
|
||||
: lda LD3EE,x
|
||||
|
||||
ldx quit_string_1
|
||||
: lda quit_string_1,x
|
||||
@addr := *+1
|
||||
sta dummy1234,x
|
||||
dex
|
||||
bpl :-
|
||||
|
||||
sta ALTZPON
|
||||
lda LCBANK1
|
||||
lda LCBANK1
|
||||
rts
|
||||
.endproc
|
||||
|
||||
L9E2A: stax @addr
|
||||
.proc copy_quit_string_2
|
||||
stax @addr
|
||||
sta ALTZPOFF
|
||||
lda LCBANK2
|
||||
lda LCBANK2
|
||||
ldx LD3AD
|
||||
: lda LD3AD,x
|
||||
|
||||
ldx quit_string_2
|
||||
: lda quit_string_2,x
|
||||
@addr := *+1
|
||||
sta dummy1234,x
|
||||
dex
|
||||
bpl :-
|
||||
|
||||
sta ALTZPON
|
||||
lda LCBANK1
|
||||
lda LCBANK1
|
||||
rts
|
||||
.endproc
|
||||
|
||||
;;; ============================================================
|
||||
|
||||
DEFINE_GET_FILE_INFO_PARAMS get_file_info_params, 0
|
||||
|
||||
@ -1488,7 +1500,7 @@ L9E61: jsr L9E74
|
||||
rts
|
||||
|
||||
L9E74: sta L9EBF
|
||||
addr_call L9E05, L9EC1
|
||||
addr_call copy_quit_string_1, L9EC1
|
||||
lda L9EBF
|
||||
jsr L9BE2
|
||||
stax $06
|
||||
|
Loading…
x
Reference in New Issue
Block a user