labels for dynamically loaded entry points

This commit is contained in:
Joshua Bell 2018-01-19 18:44:24 -08:00
parent 0ae282bed3
commit b296473c5d

View File

@ -5650,6 +5650,12 @@ L0CD7 := $0CD7
L0CF9 := $0CF9 L0CF9 := $0CF9
L0D14 := $0D14 L0D14 := $0D14
dynamic_routine_800 := $0800
dynamic_routine_5000 := $5000
dynamic_routine_7000 := $7000
dynamic_routine_9000 := $9000
.org $4000 .org $4000
;; Jump table ;; Jump table
@ -5662,7 +5668,7 @@ L4009: jmp L830F
JT_DESKTOP_EJECT: jmp cmd_eject JT_DESKTOP_EJECT: jmp cmd_eject
L4015: jmp L40F2 L4015: jmp L40F2
JT_DESKTOP_RELAY: jmp DESKTOP_RELAY JT_DESKTOP_RELAY: jmp DESKTOP_RELAY
jmp load_desktop2_routine_a jmp load_dynamic_routine
L401E: jmp L6D2B L401E: jmp L6D2B
JT_MLI_RELAY: jmp MLI_RELAY JT_MLI_RELAY: jmp MLI_RELAY
jmp DESKTOP_COPY_TO_BUF jmp DESKTOP_COPY_TO_BUF
@ -5674,7 +5680,7 @@ JT_DESKTOP_SHOW_ALERT: jmp DESKTOP_SHOW_ALERT
jmp launch_file jmp launch_file
jmp set_pointer_cursor jmp set_pointer_cursor
jmp set_watch_cursor jmp set_watch_cursor
jmp load_desktop2_routine_b jmp restore_dynamic_routine
;; API entry point ;; API entry point
L4042: cli L4042: cli
@ -6682,24 +6688,24 @@ cmd_noop: rts
cmd_selector_action: cmd_selector_action:
jsr set_watch_cursor jsr set_watch_cursor
lda #$02 lda #$02
jsr load_desktop2_routine_a jsr load_dynamic_routine
bmi L4961 bmi L4961
lda $E25B lda $E25B
cmp #$03 cmp #$03
bcs L492E bcs L492E
lda #$06 lda #$06
jsr load_desktop2_routine_a jsr load_dynamic_routine
bmi L4961 bmi L4961
lda #$03 lda #$03
jsr load_desktop2_routine_a jsr load_dynamic_routine
bmi L4961 bmi L4961
L492E: jsr set_pointer_cursor L492E: jsr set_pointer_cursor
lda $E25B lda $E25B
jsr L9000 jsr dynamic_routine_9000
sta L498F sta L498F
jsr set_watch_cursor jsr set_watch_cursor
lda #$08 lda #$08
jsr load_desktop2_routine_b jsr restore_dynamic_routine
lda $E25B lda $E25B
cmp #$04 cmp #$04
bne L4961 bne L4961
@ -7117,18 +7123,18 @@ L4CA1: .byte $00
cmd_copy_file: cmd_copy_file:
jsr set_watch_cursor jsr set_watch_cursor
lda #$03 lda #$03
jsr load_desktop2_routine_a jsr load_dynamic_routine
bmi L4CD6 bmi L4CD6
lda #$04 lda #$04
jsr load_desktop2_routine_a jsr load_dynamic_routine
bmi L4CD6 bmi L4CD6
jsr set_pointer_cursor jsr set_pointer_cursor
lda #$00 lda #$00
jsr L5000 jsr dynamic_routine_5000
pha pha
jsr set_watch_cursor jsr set_watch_cursor
lda #$07 lda #$07
jsr load_desktop2_routine_b jsr restore_dynamic_routine
jsr set_pointer_cursor jsr set_pointer_cursor
pla pla
bpl L4CCD bpl L4CCD
@ -7208,18 +7214,18 @@ L4D4E: stx $E04B
cmd_delete_file: cmd_delete_file:
jsr set_watch_cursor jsr set_watch_cursor
lda #$03 lda #$03
jsr load_desktop2_routine_a jsr load_dynamic_routine
bmi L4D9D bmi L4D9D
lda #$05 lda #$05
jsr load_desktop2_routine_a jsr load_dynamic_routine
bmi L4D9D bmi L4D9D
jsr set_pointer_cursor jsr set_pointer_cursor
lda #$01 lda #$01
jsr L5000 jsr dynamic_routine_5000
pha pha
jsr set_watch_cursor jsr set_watch_cursor
lda #$07 lda #$07
jsr load_desktop2_routine_b jsr restore_dynamic_routine
jsr set_pointer_cursor jsr set_pointer_cursor
pla pla
bpl L4D8A bpl L4D8A
@ -7440,9 +7446,9 @@ L4F5B: rts
cmd_disk_copy: cmd_disk_copy:
lda #$00 lda #$00
jsr load_desktop2_routine_a jsr load_dynamic_routine
bmi L4F66 bmi L4F66
jmp L0800 jmp dynamic_routine_800
;;; ================================================== ;;; ==================================================
@ -7495,10 +7501,10 @@ L4FF6: lda ($06),y
dey dey
bpl L4FF6 bpl L4FF6
ldx #$03 ldx #$03
L5000: lda DATELO,x : lda DATELO,x
sta create_params::cdate,x sta create_params::cdate,x
dex dex
bpl L5000 bpl :-
MLI_RELAY_CALL CREATE, create_params MLI_RELAY_CALL CREATE, create_params
beq L5027 beq L5027
jsr DESKTOP_SHOW_ALERT0 jsr DESKTOP_SHOW_ALERT0
@ -7871,10 +7877,10 @@ L533F: .byte 0
cmd_format_disk: cmd_format_disk:
lda #$01 lda #$01
jsr load_desktop2_routine_a jsr load_dynamic_routine
bmi L535A bmi L535A
lda #$04 lda #$04
jsr L0800 jsr dynamic_routine_800
bne L5357 bne L5357
stx L533F stx L533F
jsr L4523 jsr L4523
@ -7887,10 +7893,10 @@ L535A: rts
cmd_erase_disk: cmd_erase_disk:
lda #$01 lda #$01
jsr load_desktop2_routine_a jsr load_dynamic_routine
bmi L5372 bmi L5372
lda #$05 lda #$05
jsr L0800 jsr dynamic_routine_800
bne L5372 bne L5372
stx L533F stx L533F
jsr L4523 jsr L4523
@ -14537,7 +14543,7 @@ L8E10: A2D_RELAY_CALL A2D_DRAW_RECT, LE230
;;; ================================================== ;;; ==================================================
;;; Dynamically load parts of Desktop2 ;;; Dynamically load parts of Desktop2
;;; Call load_desktop2_routine_a or load_desktop2_routine_b ;;; Call load_dynamic_routine or restore_dynamic_routine
;;; with A set to routine number (0-8); routine is loaded ;;; with A set to routine number (0-8); routine is loaded
;;; from DeskTop2 file to target address. Returns with ;;; from DeskTop2 file to target address. Returns with
;;; minus flag set on failure. ;;; minus flag set on failure.
@ -14553,7 +14559,7 @@ L8E10: A2D_RELAY_CALL A2D_DRAW_RECT, LE230
;;; 7 = restore from copy file, delete file - A$5000,L$2800 ;;; 7 = restore from copy file, delete file - A$5000,L$2800
;;; 8 = restore from selector actions - A$9000,L$1000 ;;; 8 = restore from selector actions - A$9000,L$1000
.proc load_desktop2_routine .proc load_dynamic_routine_impl
pos_table: pos_table:
.dword $00012FE0,$000160E0,$000174E0,$000184E0,$0001A4E0 .dword $00012FE0,$000160E0,$000174E0,$000184E0,$0001A4E0
@ -14596,12 +14602,13 @@ L8E80: .byte $00
;; Called with routine # in A ;; Called with routine # in A
L8E81: pha ; entry point with bit clear load: pha ; entry point with bit clear
lda #$00 lda #$00
sta L8E80 sta L8E80
beq :+ beq :+
L8E89: pha restore:
pha
lda #$80 ; entry point with bit set lda #$80 ; entry point with bit set
sta L8E80 sta L8E80
@ -14647,8 +14654,8 @@ open: MLI_RELAY_CALL OPEN, open_params
rts rts
.endproc .endproc
load_desktop2_routine_a := load_desktop2_routine::L8E81 load_dynamic_routine := load_dynamic_routine_impl::load
load_desktop2_routine_b := load_desktop2_routine::L8E89 restore_dynamic_routine := load_dynamic_routine_impl::restore
;;; ================================================== ;;; ==================================================
@ -14780,10 +14787,9 @@ L8FEB: tsx
beq L8FFF beq L8FFF
jmp L908C jmp L908C
L8FFF: .byte $2C L8FFF: bit L918A
L9000: txa ; ??? bpl L9011
sta ($10),y lda $DF20
.byte $0D,$AD,$20,$DF
beq L900C beq L900C
jmp L908C jmp L908C
@ -14791,7 +14797,7 @@ L900C: pla
pla pla
jmp JT_DESKTOP_EJECT jmp JT_DESKTOP_EJECT
lda $EBFC L9011: lda $EBFC
bpl L9032 bpl L9032
and #$7F and #$7F
asl a asl a
@ -20121,8 +20127,8 @@ L0BB9: lda get_file_info_params_type
beq L0BC3 beq L0BC3
jmp L0D0A jmp L0D0A
L0BC3: MLI_RELAY_CALL OPEN, open_desktop2_params L0BC3: MLI_RELAY_CALL OPEN, open_params2
lda open_desktop2_params_ref_num lda open_params2_ref_num
sta read_params2_ref_num sta read_params2_ref_num
sta close_params2_ref_num sta close_params2_ref_num
MLI_RELAY_CALL READ, read_params2 MLI_RELAY_CALL READ, read_params2
@ -20238,13 +20244,13 @@ L0CBA: lda $06
L0CCB: MLI_RELAY_CALL CLOSE, close_params2 L0CCB: MLI_RELAY_CALL CLOSE, close_params2
jmp L0D0A jmp L0D0A
.proc open_desktop2_params .proc open_params2
params: .byte 3 params: .byte 3
path: .addr str_desk_acc path: .addr str_desk_acc
buffer: .addr $1000 buffer: .addr $1000
ref_num:.byte 0 ref_num:.byte 0
.endproc .endproc
open_desktop2_params_ref_num := open_desktop2_params::ref_num open_params2_ref_num := open_params2::ref_num
.proc read_params2 .proc read_params2
params: .byte 4 params: .byte 4