mirror of
https://github.com/mi57730/a2d.git
synced 2025-02-26 23:29:11 +00:00
DeskTop: Icon creation
This commit is contained in:
parent
8bb974200c
commit
3a7a8a4b68
@ -2141,8 +2141,8 @@ L518D: lda L51EF
|
|||||||
tax
|
tax
|
||||||
lda cached_window_icon_list,x
|
lda cached_window_icon_list,x
|
||||||
jsr icon_entry_lookup
|
jsr icon_entry_lookup
|
||||||
ldy #$01
|
ldy #DT_ADD_ICON
|
||||||
jsr DESKTOP_RELAY
|
jsr DESKTOP_RELAY ; icon entry addr in A,X
|
||||||
inc L51EF
|
inc L51EF
|
||||||
jmp L518D
|
jmp L518D
|
||||||
|
|
||||||
@ -3176,8 +3176,8 @@ L5986: txa
|
|||||||
cmp trash_icon_num
|
cmp trash_icon_num
|
||||||
beq L5998
|
beq L5998
|
||||||
jsr icon_entry_lookup
|
jsr icon_entry_lookup
|
||||||
ldy #$01
|
ldy #DT_ADD_ICON
|
||||||
jsr DESKTOP_RELAY
|
jsr DESKTOP_RELAY ; icon entry addr in A,X
|
||||||
L5998: pla
|
L5998: pla
|
||||||
tax
|
tax
|
||||||
inx
|
inx
|
||||||
@ -3310,8 +3310,8 @@ L5AA9: lda cached_window_icon_count
|
|||||||
dex
|
dex
|
||||||
lda cached_window_icon_list,x
|
lda cached_window_icon_list,x
|
||||||
jsr icon_entry_lookup
|
jsr icon_entry_lookup
|
||||||
ldy #$01
|
ldy #DT_ADD_ICON
|
||||||
jsr DESKTOP_RELAY
|
jsr DESKTOP_RELAY ; icon entry addr in A,X
|
||||||
L5AC0: jsr DESKTOP_COPY_FROM_BUF
|
L5AC0: jsr DESKTOP_COPY_FROM_BUF
|
||||||
jmp redraw_windows_and_desktop
|
jmp redraw_windows_and_desktop
|
||||||
|
|
||||||
@ -5018,8 +5018,8 @@ L6BDA: lda L6C0E
|
|||||||
tax
|
tax
|
||||||
lda cached_window_icon_list,x
|
lda cached_window_icon_list,x
|
||||||
jsr icon_entry_lookup
|
jsr icon_entry_lookup
|
||||||
ldy #$01
|
ldy #DT_ADD_ICON
|
||||||
jsr DESKTOP_RELAY
|
jsr DESKTOP_RELAY ; icon entry addr in A,X
|
||||||
inc L6C0E
|
inc L6C0E
|
||||||
jmp L6BDA
|
jmp L6BDA
|
||||||
|
|
||||||
@ -5967,7 +5967,7 @@ L74AD: lda ($06),y
|
|||||||
sbc #$01
|
sbc #$01
|
||||||
sta ($08),y
|
sta ($08),y
|
||||||
ldy #$01
|
ldy #$01
|
||||||
lda #$2F
|
lda #'/'
|
||||||
sta ($08),y
|
sta ($08),y
|
||||||
ldy #$00
|
ldy #$00
|
||||||
lda ($08),y
|
lda ($08),y
|
||||||
@ -6264,80 +6264,104 @@ L7767: .byte $14
|
|||||||
;;; Create icon
|
;;; Create icon
|
||||||
|
|
||||||
.proc L7768
|
.proc L7768
|
||||||
|
file_entry := $6
|
||||||
|
icon_entry := $8
|
||||||
|
name_tmp := $1800
|
||||||
|
|
||||||
inc LDD9E
|
inc LDD9E
|
||||||
jsr DESKTOP_ALLOC_ICON
|
jsr DESKTOP_ALLOC_ICON
|
||||||
ldx cached_window_icon_count
|
ldx cached_window_icon_count
|
||||||
inc cached_window_icon_count
|
inc cached_window_icon_count
|
||||||
sta cached_window_icon_list,x
|
sta cached_window_icon_list,x
|
||||||
jsr icon_entry_lookup
|
jsr icon_entry_lookup
|
||||||
stax $08
|
stax icon_entry
|
||||||
lda LCBANK2
|
lda LCBANK2
|
||||||
lda LCBANK2
|
lda LCBANK2
|
||||||
ldy #$00
|
|
||||||
lda ($06),y
|
;; Copy the name (offset by 2 for count and leading space)
|
||||||
sta $1800
|
ldy #FileEntry::storage_type_name_length
|
||||||
|
lda (file_entry),y ; assumes storage type is 0 ???
|
||||||
|
sta name_tmp
|
||||||
iny
|
iny
|
||||||
ldx #$00
|
ldx #0
|
||||||
L778E: lda ($06),y
|
: lda (file_entry),y
|
||||||
sta $1802,x
|
sta name_tmp+2,x
|
||||||
inx
|
inx
|
||||||
iny
|
iny
|
||||||
cpx $1800
|
cpx name_tmp
|
||||||
bne L778E
|
bne :-
|
||||||
inc $1800
|
|
||||||
inc $1800
|
|
||||||
lda #$20
|
|
||||||
sta $1801
|
|
||||||
ldx $1800
|
|
||||||
sta $1800,x
|
|
||||||
ldy #$10
|
|
||||||
lda ($06),y
|
|
||||||
cmp #$B3
|
|
||||||
beq L77CC
|
|
||||||
cmp #$FF
|
|
||||||
bne L77DA
|
|
||||||
ldy #$00
|
|
||||||
lda ($06),y
|
|
||||||
tay
|
|
||||||
ldx L77D0
|
|
||||||
L77BF: lda ($06),y
|
|
||||||
cmp L77D0,x
|
|
||||||
bne L77D8
|
|
||||||
dey
|
|
||||||
beq L77D8
|
|
||||||
dex
|
|
||||||
bne L77BF
|
|
||||||
L77CC: lda #$01
|
|
||||||
bne L77DA
|
|
||||||
L77D0: PASCAL_STRING ".SYSTEM"
|
|
||||||
|
|
||||||
L77D8: lda #$FF
|
inc name_tmp ; length += 2 for leading/trailing spaces
|
||||||
L77DA: tay
|
inc name_tmp
|
||||||
|
lda #' ' ; leading space
|
||||||
|
sta name_tmp+1
|
||||||
|
ldx name_tmp
|
||||||
|
sta name_tmp,x ; trailing space
|
||||||
|
|
||||||
|
;; Check file type
|
||||||
|
ldy #FileEntry::file_type
|
||||||
|
lda (file_entry),y
|
||||||
|
cmp #FT_S16 ; IIgs System?
|
||||||
|
beq is_app
|
||||||
|
cmp #FT_SYSTEM ; Other system?
|
||||||
|
bne got_type ; nope
|
||||||
|
|
||||||
|
;; Distinguish *.SYSTEM files as apps (use $01) from other
|
||||||
|
;; type=SYS files (use $FF).
|
||||||
|
ldy #FileEntry::storage_type_name_length
|
||||||
|
lda (file_entry),y
|
||||||
|
tay
|
||||||
|
ldx str_sys_suffix
|
||||||
|
: lda (file_entry),y
|
||||||
|
cmp str_sys_suffix,x
|
||||||
|
bne not_app
|
||||||
|
dey
|
||||||
|
beq not_app
|
||||||
|
dex
|
||||||
|
bne :-
|
||||||
|
|
||||||
|
is_app:
|
||||||
|
lda #$01 ; TODO: Define a symbol for this.
|
||||||
|
bne got_type
|
||||||
|
|
||||||
|
str_sys_suffix:
|
||||||
|
PASCAL_STRING ".SYSTEM"
|
||||||
|
|
||||||
|
not_app:
|
||||||
|
lda #$FF
|
||||||
|
|
||||||
|
got_type:
|
||||||
|
tay
|
||||||
|
|
||||||
|
;; Figure out icon type
|
||||||
lda LCBANK1
|
lda LCBANK1
|
||||||
lda LCBANK1
|
lda LCBANK1
|
||||||
tya
|
tya
|
||||||
;; L7622/3 = icon bits addr
|
;; L7622/3 = icon bits addr
|
||||||
;; L7624 = icon type
|
;; L7624 = icon type
|
||||||
jsr find_icon_details_for_file_type
|
jsr find_icon_details_for_file_type
|
||||||
addr_call capitalize_string, $1800
|
addr_call capitalize_string, name_tmp
|
||||||
ldy #IconEntry::len
|
ldy #IconEntry::len
|
||||||
ldx #0
|
ldx #0
|
||||||
L77F0: lda $1800,x
|
L77F0: lda name_tmp,x
|
||||||
sta ($08),y
|
sta (icon_entry),y
|
||||||
iny
|
iny
|
||||||
inx
|
inx
|
||||||
cpx $1800
|
cpx name_tmp
|
||||||
bne L77F0
|
bne L77F0
|
||||||
lda $1800,x
|
lda name_tmp,x
|
||||||
sta ($08),y
|
sta (icon_entry),y
|
||||||
ldx #$00
|
|
||||||
ldy #$03
|
;; Assign location
|
||||||
L7805: lda L762A,x
|
ldx #0
|
||||||
sta ($08),y
|
ldy #IconEntry::iconx
|
||||||
|
: lda L762A,x
|
||||||
|
sta (icon_entry),y
|
||||||
inx
|
inx
|
||||||
iny
|
iny
|
||||||
cpx #$04
|
cpx #$04
|
||||||
bne L7805
|
bne :-
|
||||||
|
|
||||||
lda cached_window_icon_count
|
lda cached_window_icon_count
|
||||||
cmp L762E
|
cmp L762E
|
||||||
beq L781A
|
beq L781A
|
||||||
@ -6363,18 +6387,18 @@ L7862: lda L762A
|
|||||||
L7870: lda cached_window_id
|
L7870: lda cached_window_id
|
||||||
ora L7624
|
ora L7624
|
||||||
ldy #IconEntry::win_type
|
ldy #IconEntry::win_type
|
||||||
sta ($08),y
|
sta (icon_entry),y
|
||||||
ldy #IconEntry::iconbits
|
ldy #IconEntry::iconbits
|
||||||
lda L7622
|
lda L7622
|
||||||
sta ($08),y
|
sta (icon_entry),y
|
||||||
iny
|
iny
|
||||||
lda L7622+1
|
lda L7622+1
|
||||||
sta ($08),y
|
sta (icon_entry),y
|
||||||
ldx cached_window_icon_count
|
ldx cached_window_icon_count
|
||||||
dex
|
dex
|
||||||
lda cached_window_icon_list,x
|
lda cached_window_icon_list,x
|
||||||
jsr icon_screen_to_window
|
jsr icon_screen_to_window
|
||||||
add16 $06, #32, $06
|
add16 file_entry, #32, file_entry
|
||||||
rts
|
rts
|
||||||
|
|
||||||
.byte 0
|
.byte 0
|
||||||
@ -9115,7 +9139,7 @@ L9032: jsr L8FA7
|
|||||||
L9051: lda LEBFC
|
L9051: lda LEBFC
|
||||||
jsr icon_entry_name_lookup
|
jsr icon_entry_name_lookup
|
||||||
ldy #$01
|
ldy #$01
|
||||||
lda #$2F
|
lda #'/'
|
||||||
sta ($06),y
|
sta ($06),y
|
||||||
dey
|
dey
|
||||||
lda ($06),y
|
lda ($06),y
|
||||||
@ -9128,7 +9152,7 @@ L9066: iny
|
|||||||
cpy #$00 ; self-modified
|
cpy #$00 ; self-modified
|
||||||
bne L9066
|
bne L9066
|
||||||
ldy #$01
|
ldy #$01
|
||||||
lda #$20
|
lda #' '
|
||||||
sta ($06),y
|
sta ($06),y
|
||||||
L9076: ldy #$FF
|
L9076: ldy #$FF
|
||||||
L9078: iny
|
L9078: iny
|
||||||
@ -9238,7 +9262,7 @@ L9168: jsr L917F
|
|||||||
lda LEBFC
|
lda LEBFC
|
||||||
jsr icon_entry_name_lookup
|
jsr icon_entry_name_lookup
|
||||||
ldy #$01
|
ldy #$01
|
||||||
lda #$20
|
lda #' '
|
||||||
sta ($06),y
|
sta ($06),y
|
||||||
return #0
|
return #0
|
||||||
|
|
||||||
@ -11895,8 +11919,8 @@ do2: ldy #1
|
|||||||
jsr compose_file_count_string
|
jsr compose_file_count_string
|
||||||
lda winfo_alert_dialog
|
lda winfo_alert_dialog
|
||||||
jsr set_port_from_window_id
|
jsr set_port_from_window_id
|
||||||
jsr LBE8D
|
jsr paint_rectAE86_white
|
||||||
jsr LBE9A
|
jsr paint_rectAE8E_white
|
||||||
jsr copy_dialog_param_addr_to_ptr
|
jsr copy_dialog_param_addr_to_ptr
|
||||||
ldy #$03
|
ldy #$03
|
||||||
lda (ptr),y
|
lda (ptr),y
|
||||||
@ -11905,7 +11929,7 @@ do2: ldy #1
|
|||||||
lda (ptr),y
|
lda (ptr),y
|
||||||
sta ptr+1
|
sta ptr+1
|
||||||
stx ptr
|
stx ptr
|
||||||
jsr LBE63
|
jsr copy_name_to_buf0_adjust_case
|
||||||
MGTK_RELAY_CALL MGTK::MoveTo, desktop_aux::LAE7E
|
MGTK_RELAY_CALL MGTK::MoveTo, desktop_aux::LAE7E
|
||||||
addr_call draw_text1, path_buf0
|
addr_call draw_text1, path_buf0
|
||||||
jsr copy_dialog_param_addr_to_ptr
|
jsr copy_dialog_param_addr_to_ptr
|
||||||
@ -11916,7 +11940,7 @@ do2: ldy #1
|
|||||||
lda (ptr),y
|
lda (ptr),y
|
||||||
sta ptr+1
|
sta ptr+1
|
||||||
stx ptr
|
stx ptr
|
||||||
jsr LBE78
|
jsr copy_name_to_buf1_adjust_case
|
||||||
MGTK_RELAY_CALL MGTK::MoveTo, desktop_aux::LAE82
|
MGTK_RELAY_CALL MGTK::MoveTo, desktop_aux::LAE82
|
||||||
addr_call draw_text1, path_buf1
|
addr_call draw_text1, path_buf1
|
||||||
yax_call MGTK_RELAY, MGTK::MoveTo, desktop_aux::LB0BA
|
yax_call MGTK_RELAY, MGTK::MoveTo, desktop_aux::LB0BA
|
||||||
@ -12026,7 +12050,7 @@ do2: ldy #$01
|
|||||||
jsr compose_file_count_string
|
jsr compose_file_count_string
|
||||||
lda winfo_alert_dialog
|
lda winfo_alert_dialog
|
||||||
jsr set_port_from_window_id
|
jsr set_port_from_window_id
|
||||||
jsr LBE8D
|
jsr paint_rectAE86_white
|
||||||
jsr copy_dialog_param_addr_to_ptr
|
jsr copy_dialog_param_addr_to_ptr
|
||||||
ldy #$03
|
ldy #$03
|
||||||
lda (ptr),y
|
lda (ptr),y
|
||||||
@ -12035,7 +12059,7 @@ do2: ldy #$01
|
|||||||
lda (ptr),y
|
lda (ptr),y
|
||||||
sta ptr+1
|
sta ptr+1
|
||||||
stx ptr
|
stx ptr
|
||||||
jsr LBE63
|
jsr copy_name_to_buf0_adjust_case
|
||||||
MGTK_RELAY_CALL MGTK::MoveTo, desktop_aux::LAE7E
|
MGTK_RELAY_CALL MGTK::MoveTo, desktop_aux::LAE7E
|
||||||
addr_call draw_text1, path_buf0
|
addr_call draw_text1, path_buf0
|
||||||
MGTK_RELAY_CALL MGTK::MoveTo, desktop_aux::LB0BA
|
MGTK_RELAY_CALL MGTK::MoveTo, desktop_aux::LB0BA
|
||||||
@ -12215,7 +12239,7 @@ do3: ldy #$01
|
|||||||
jsr compose_file_count_string
|
jsr compose_file_count_string
|
||||||
lda winfo_alert_dialog
|
lda winfo_alert_dialog
|
||||||
jsr set_port_from_window_id
|
jsr set_port_from_window_id
|
||||||
jsr LBE8D
|
jsr paint_rectAE86_white
|
||||||
jsr copy_dialog_param_addr_to_ptr
|
jsr copy_dialog_param_addr_to_ptr
|
||||||
ldy #$03
|
ldy #$03
|
||||||
lda ($06),y
|
lda ($06),y
|
||||||
@ -12224,7 +12248,7 @@ do3: ldy #$01
|
|||||||
lda ($06),y
|
lda ($06),y
|
||||||
sta $06+1
|
sta $06+1
|
||||||
stx $06
|
stx $06
|
||||||
jsr LBE63
|
jsr copy_name_to_buf0_adjust_case
|
||||||
MGTK_RELAY_CALL MGTK::MoveTo, desktop_aux::LAE7E
|
MGTK_RELAY_CALL MGTK::MoveTo, desktop_aux::LAE7E
|
||||||
addr_call draw_text1, path_buf0
|
addr_call draw_text1, path_buf0
|
||||||
MGTK_RELAY_CALL MGTK::MoveTo, desktop_aux::LB16E
|
MGTK_RELAY_CALL MGTK::MoveTo, desktop_aux::LB16E
|
||||||
@ -12520,7 +12544,7 @@ do3: ldy #$01
|
|||||||
jsr compose_file_count_string
|
jsr compose_file_count_string
|
||||||
lda winfo_alert_dialog
|
lda winfo_alert_dialog
|
||||||
jsr set_port_from_window_id
|
jsr set_port_from_window_id
|
||||||
jsr LBE8D
|
jsr paint_rectAE86_white
|
||||||
jsr copy_dialog_param_addr_to_ptr
|
jsr copy_dialog_param_addr_to_ptr
|
||||||
ldy #$03
|
ldy #$03
|
||||||
lda ($06),y
|
lda ($06),y
|
||||||
@ -12529,7 +12553,7 @@ do3: ldy #$01
|
|||||||
lda ($06),y
|
lda ($06),y
|
||||||
sta $06+1
|
sta $06+1
|
||||||
stx $06
|
stx $06
|
||||||
jsr LBE63
|
jsr copy_name_to_buf0_adjust_case
|
||||||
MGTK_RELAY_CALL MGTK::MoveTo, desktop_aux::LAE7E
|
MGTK_RELAY_CALL MGTK::MoveTo, desktop_aux::LAE7E
|
||||||
addr_call draw_text1, path_buf0
|
addr_call draw_text1, path_buf0
|
||||||
MGTK_RELAY_CALL MGTK::MoveTo, desktop_aux::LB241
|
MGTK_RELAY_CALL MGTK::MoveTo, desktop_aux::LB241
|
||||||
@ -12611,7 +12635,7 @@ do3: ldy #$01
|
|||||||
jsr compose_file_count_string
|
jsr compose_file_count_string
|
||||||
lda winfo_alert_dialog
|
lda winfo_alert_dialog
|
||||||
jsr set_port_from_window_id
|
jsr set_port_from_window_id
|
||||||
jsr LBE8D
|
jsr paint_rectAE86_white
|
||||||
jsr copy_dialog_param_addr_to_ptr
|
jsr copy_dialog_param_addr_to_ptr
|
||||||
ldy #$03
|
ldy #$03
|
||||||
lda ($06),y
|
lda ($06),y
|
||||||
@ -12620,7 +12644,7 @@ do3: ldy #$01
|
|||||||
lda ($06),y
|
lda ($06),y
|
||||||
sta $06+1
|
sta $06+1
|
||||||
stx $06
|
stx $06
|
||||||
jsr LBE63
|
jsr copy_name_to_buf0_adjust_case
|
||||||
MGTK_RELAY_CALL MGTK::MoveTo, desktop_aux::LAE7E
|
MGTK_RELAY_CALL MGTK::MoveTo, desktop_aux::LAE7E
|
||||||
addr_call draw_text1, path_buf0
|
addr_call draw_text1, path_buf0
|
||||||
MGTK_RELAY_CALL MGTK::MoveTo, desktop_aux::LB23D
|
MGTK_RELAY_CALL MGTK::MoveTo, desktop_aux::LB23D
|
||||||
@ -13990,31 +14014,43 @@ nonzero_flag: ; high bit set once a non-zero digit seen
|
|||||||
|
|
||||||
;;; ============================================================
|
;;; ============================================================
|
||||||
|
|
||||||
LBE63: ldy #$00
|
.proc copy_name_to_buf0_adjust_case
|
||||||
lda ($06),y
|
ptr := $6
|
||||||
|
|
||||||
|
ldy #0
|
||||||
|
lda (ptr),y
|
||||||
tay
|
tay
|
||||||
LBE68: lda ($06),y
|
: lda (ptr),y
|
||||||
sta path_buf0,y
|
sta path_buf0,y
|
||||||
dey
|
dey
|
||||||
bpl LBE68
|
bpl :-
|
||||||
addr_call adjust_case, path_buf0
|
addr_call adjust_case, path_buf0
|
||||||
rts
|
rts
|
||||||
|
.endproc
|
||||||
|
|
||||||
LBE78: ldy #$00
|
.proc copy_name_to_buf1_adjust_case
|
||||||
lda ($06),y
|
ptr := $6
|
||||||
|
|
||||||
|
ldy #0
|
||||||
|
lda (ptr),y
|
||||||
tay
|
tay
|
||||||
LBE7D: lda ($06),y
|
: lda (ptr),y
|
||||||
sta path_buf1,y
|
sta path_buf1,y
|
||||||
dey
|
dey
|
||||||
bpl LBE7D
|
bpl :-
|
||||||
addr_call adjust_case, path_buf1
|
addr_call adjust_case, path_buf1
|
||||||
rts
|
rts
|
||||||
|
.endproc
|
||||||
|
|
||||||
LBE8D: jsr set_fill_white
|
;;; ============================================================
|
||||||
|
|
||||||
|
paint_rectAE86_white:
|
||||||
|
jsr set_fill_white
|
||||||
MGTK_RELAY_CALL MGTK::PaintRect, desktop_aux::LAE86
|
MGTK_RELAY_CALL MGTK::PaintRect, desktop_aux::LAE86
|
||||||
rts
|
rts
|
||||||
|
|
||||||
LBE9A: jsr set_fill_white
|
paint_rectAE8E_white:
|
||||||
|
jsr set_fill_white
|
||||||
MGTK_RELAY_CALL MGTK::PaintRect, desktop_aux::LAE8E
|
MGTK_RELAY_CALL MGTK::PaintRect, desktop_aux::LAE8E
|
||||||
rts
|
rts
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user