icon offset constants

This commit is contained in:
Joshua Bell 2018-02-06 21:59:25 -08:00
parent 305343b02a
commit b13b1f56d3
3 changed files with 201 additions and 163 deletions

View File

@ -44,6 +44,7 @@ DESKTOP := $8E00
;; Implementation bounces to $93BC, uses jump table at $939E ;; Implementation bounces to $93BC, uses jump table at $939E
DT_ADD_ICON := $01 ; { .addr icondata }
DT_HIGHLIGHT_ICON := $02 ; { .byte icon } DT_HIGHLIGHT_ICON := $02 ; { .byte icon }
DT_UNHIGHLIGHT_ICON := $03 ; { .byte icon } DT_UNHIGHLIGHT_ICON := $03 ; { .byte icon }
;; $06 ??? ;; $06 ???

View File

@ -6,7 +6,7 @@
.include "../inc/prodos.inc" .include "../inc/prodos.inc"
.include "../mgtk.inc" .include "../mgtk.inc"
.include "../desktop.inc" .include "../desktop.inc"
.include "macros.inc" .include "../macros.inc"
;;; ================================================== ;;; ==================================================
;;; DeskTop - the actual application ;;; DeskTop - the actual application
@ -216,7 +216,7 @@ L869E: sta ($06),y
ldx #$00 ldx #$00
ldy #$0B ldy #$0B
L86B6: lda online_params_buffer+1,x L86B6: lda online_params_buffer+1,x
cmp #$41 cmp #$41 ; convert to lowercase ???
bcc L86C4 bcc L86C4
cmp #$5F cmp #$5F
bcs L86C4 bcs L86C4
@ -227,17 +227,18 @@ L86C4: sta ($06),y
inx inx
cpx online_params_buffer cpx online_params_buffer
bne L86B6 bne L86B6
ldy #$09 ldy #9
lda ($06),y lda ($06),y
clc clc
adc #$02 adc #2 ; increase length by 2 (spaces) ???
sta ($06),y sta ($06),y
lda L8737 lda L8737 ; type?
and #$0F and #$0F
cmp #$04 cmp #$04
bne L86ED bne L86ED
ldy #$07 ldy #icon_entry_offset_iconbits
lda #$B4 lda #$B4 ; $14B4 ???
sta ($06),y sta ($06),y
iny iny
lda #$14 lda #$14
@ -246,46 +247,46 @@ L86C4: sta ($06),y
L86ED: cmp #$0B L86ED: cmp #$0B
bne L86FF bne L86FF
ldy #$07 ldy #icon_entry_offset_iconbits
lda #$70 lda #$70 ; $1470 ???
sta ($06),y sta ($06),y
iny iny
lda #$14 lda #$14
sta ($06),y sta ($06),y
jmp L870A jmp L870A
L86FF: ldy #$07 L86FF: ldy #icon_entry_offset_iconbits
lda #$40 lda #$40 ; $1440 ???
sta ($06),y sta ($06),y
iny iny
lda #$14 lda #$14
sta ($06),y sta ($06),y
L870A: ldy #$02
lda #$00 L870A: ldy #icon_entry_offset_type
lda #0
sta ($06),y sta ($06),y
inc L8738 inc L8738
lda L8738 lda L8738
asl a asl a
asl a asl a
tax tax
ldy #$03 ldy #icon_entry_offset_iconx
L871B: lda L8739,x : lda L8739,x
sta ($06),y sta ($06),y
inx inx
iny iny
cpy #$07 cpy #7
bne L871B bne :-
ldx $EF8A ldx $EF8A
dex dex
ldy #$00 ldy #0
lda ($06),y lda ($06),y
sta $EF8B,x sta $EF8B,x
jsr $83A5 jsr $83A5
lda #$00 lda #$00
rts rts
L8737: rts L8737: .byte $60 ; file type ???
L8738: .byte $04 L8738: .byte $04
L8739: .byte $00,$00,$00,$00 L8739: .byte $00,$00,$00,$00
@ -411,19 +412,14 @@ reserved: .byte 0
maprect: DEFINE_RECT 0,0,0,0,maprect maprect: DEFINE_RECT 0,0,0,0,maprect
.endproc .endproc
.proc paintrect_params6 paintrect_params6: DEFINE_RECT 0,0,0,0, paintrect_params6
left: .word 0
top: .word 0
right: .word 0
bottom: .word 0
.endproc
.proc textwidth_params .proc textwidth_params
textptr: .addr text_buffer textptr: .addr text_buffer
textlen: .byte 0 textlen: .byte 0
result: .word 0 result: .word 0
.endproc .endproc
set_text_mask_params := textwidth_params::result + 1 ; re-used settextbg_params := textwidth_params::result + 1 ; re-used
.proc drawtext_params .proc drawtext_params
textptr: .addr text_buffer textptr: .addr text_buffer
@ -537,7 +533,7 @@ penloc: DEFINE_POINT 0, 0
penwidth: .byte 1 penwidth: .byte 1
penheight: .byte 1 penheight: .byte 1
penmode: .byte $96 ; ??? penmode: .byte $96 ; ???
textbg: .byte 0 textbg: .byte MGTK::textbg_black
fontptr: .addr DEFAULT_FONT fontptr: .addr DEFAULT_FONT
.endproc .endproc
@ -557,7 +553,7 @@ penloc: DEFINE_POINT 0, 0
penwidth: .byte 0 penwidth: .byte 0
penheight: .byte 0 penheight: .byte 0
penmode: .byte 0 penmode: .byte 0
textbg: .byte 0 textbg: .byte MGTK::textbg_black
fontptr: .addr 0 fontptr: .addr 0
.endproc .endproc
@ -578,7 +574,7 @@ notpenBIC_2: .byte 7
;;; DESKTOP command jump table ;;; DESKTOP command jump table
L939E: .addr 0 ; $00 L939E: .addr 0 ; $00
.addr L9419 ; $01 .addr ADD_ICON_IMPL
.addr HIGHLIGHT_ICON_IMPL .addr HIGHLIGHT_ICON_IMPL
.addr UNHIGHLIGHT_ICON_IMPL .addr UNHIGHLIGHT_ICON_IMPL
.addr L9508 ; $04 .addr L9508 ; $04
@ -668,10 +664,9 @@ ycoord: .word 0
.endproc .endproc
;;; ================================================== ;;; ==================================================
;;; ADD_ICON IMPL
;;; DESKTOP $01 IMPL .proc ADD_ICON_IMPL
.proc L9419
ldy #$00 ldy #$00
lda ($06),y lda ($06),y
ldx num_icons ldx num_icons
@ -926,7 +921,7 @@ L9648: lda icon_table,x
asl a asl a
tay tay
copy16 icon_ptrs,y, $08 copy16 icon_ptrs,y, $08
ldy #2 ldy #icon_entry_offset_type
lda ($08),y lda ($08),y
and #$0F and #$0F
ldy #0 ldy #0
@ -980,10 +975,10 @@ L969D: ldx L9696
asl a asl a
tax tax
copy16 icon_ptrs,x, $08 copy16 icon_ptrs,x, $08
ldy #2 ldy #icon_entry_offset_type
lda ($08),y lda ($08),y
and #$0F and #$0F
ldy #$00 ldy #0
cmp ($06),y cmp ($06),y
bne L969D bne L969D
DESKTOP_DIRECT_CALL $04, L9695 DESKTOP_DIRECT_CALL $04, L9695
@ -1015,7 +1010,7 @@ L96E5: dec L96D6
asl a asl a
tax tax
copy16 icon_ptrs,x, $08 copy16 icon_ptrs,x, $08
ldy #$02 ldy #icon_entry_offset_type
lda ($08),y lda ($08),y
and #$0F and #$0F
ldy #$00 ldy #$00
@ -1126,7 +1121,7 @@ L97B9: txa
asl a asl a
tax tax
copy16 icon_ptrs,x, $06 copy16 icon_ptrs,x, $06
ldy #$02 ldy #icon_entry_offset_type
lda ($06),y lda ($06),y
and #$0F and #$0F
cmp L97F5 cmp L97F5
@ -1158,6 +1153,7 @@ L97F6: .byte 0
;;; DESKTOP $0A IMPL ;;; DESKTOP $0A IMPL
;; Desktop icon selection
.proc L97F7 .proc L97F7
ldy #0 ldy #0
lda ($06),y lda ($06),y
@ -1175,7 +1171,7 @@ L9803: lda ($06),y
lda L982A lda L982A
jsr L9EB4 jsr L9EB4
stax $06 stax $06
ldy #2 ldy #icon_entry_offset_type
lda ($06),y lda ($06),y
and #$0F and #$0F
sta L9829 sta L9829
@ -1246,7 +1242,7 @@ L98B6: copy16 #drag_outline_buffer, $08
L98C8: lda highlight_list L98C8: lda highlight_list
jsr L9EB4 jsr L9EB4
stax $06 stax $06
ldy #$02 ldy #icon_entry_offset_type
lda ($06),y lda ($06),y
and #$0F and #$0F
sta L9832 sta L9832
@ -1312,7 +1308,7 @@ L9961: lda drag_outline_buffer+2,x
dex dex
bpl L9961 bpl L9961
copy16 #drag_outline_buffer, $08 copy16 #drag_outline_buffer, $08
L9972: ldy #$02 L9972: ldy #icon_entry_offset_type
L9974: lda ($08),y L9974: lda ($08),y
cmp L9C76 cmp L9C76
iny iny
@ -1482,7 +1478,7 @@ L9B48: bit L9C75
L9B52: MGTK_CALL MGTK::FramePoly, drag_outline_buffer L9B52: MGTK_CALL MGTK::FramePoly, drag_outline_buffer
copy16 #drag_outline_buffer, $08 copy16 #drag_outline_buffer, $08
L9B60: ldy #$02 L9B60: ldy #2
L9B62: lda ($08),y L9B62: lda ($08),y
clc clc
adc L9C96 adc L9C96
@ -1568,7 +1564,7 @@ L9C29: lda highlight_list,x
asl a asl a
tax tax
copy16 icon_ptrs,x, $06 copy16 icon_ptrs,x, $06
ldy #$02 ldy #icon_entry_offset_type
lda ($08),y lda ($08),y
iny iny
sta ($06),y sta ($06),y
@ -1792,7 +1788,7 @@ L9E3D: cmp highlight_list,x
asl a asl a
tax tax
copy16 icon_ptrs,x, $06 copy16 icon_ptrs,x, $06
ldy #$02 ldy #icon_entry_offset_type
lda ($06),y lda ($06),y
and #$0F and #$0F
sta L9831 sta L9831
@ -1828,6 +1824,9 @@ L9EB4: asl a
;;; DESKTOP $0B IMPL ;;; DESKTOP $0B IMPL
;; Deselect icon ???
;; how is this different from UNHIGHLIGHT_ICON ???
.proc L9EBE .proc L9EBE
jmp start jmp start
@ -1929,38 +1928,46 @@ L9F94: .byte 0
L9F98: lda #$00 L9F98: lda #$00
sta L9F92 sta L9F92
beq L9FA4 beq L9FA4
L9F9F: lda #$80 L9F9F: lda #$80
sta L9F92 sta L9F92
L9FA4: ldy #$02
.proc L9FA4
ldy #icon_entry_offset_type
lda ($06),y lda ($06),y
and #$0F and #$0F
bne L9FB4 bne :+
lda L9F92 lda L9F92
ora #$40 ora #$40
sta L9F92 sta L9F92
L9FB4: ldy #$03 ;; copy icon coords and bits
L9FB6: lda ($06),y : ldy #icon_entry_offset_iconx
sta poly::v7::xcoord+1,y : lda ($06),y
sta paintbits_params2::viewloc-icon_entry_offset_iconx,y
iny iny
cpy #$09 cpy #icon_entry_offset_iconx + 6 ; x/y/bits
bne L9FB6 bne :-
jsr push_zp_addrs jsr push_zp_addrs
copy16 paintbits_params2::mapbits, $08 copy16 paintbits_params2::mapbits, $08
ldy #$0B ldy #$0B
L9FCF: lda ($08),y : lda ($08),y
sta paintbits_params2::mapbits,y sta paintbits_params2::mapbits,y
dey dey
bpl L9FCF bpl :-
bit L9F92 bit L9F92
bpl L9FDF bpl :+
jsr LA12C jsr LA12C
L9FDF: jsr pop_zp_addrs : jsr pop_zp_addrs
ldy #$09
L9FE4: lda ($06),y ldy #9
sta paintrect_params6::bottom,y : lda ($06),y
sta paintrect_params6::y2,y
iny iny
cpy #$1D cpy #$1D
bne L9FE4 bne :-
: lda drawtext_params::textlen : lda drawtext_params::textlen
sta textwidth_params::textlen sta textwidth_params::textlen
MGTK_CALL MGTK::TextWidth, textwidth_params MGTK_CALL MGTK::TextWidth, textwidth_params
@ -1977,7 +1984,7 @@ L9FE4: lda ($06),y
sta moveto_params2::xcoord+1 sta moveto_params2::xcoord+1
lda paintbits_params2::maprect::x2 lda paintbits_params2::maprect::x2
lsr a lsr a
sta moveto_params2 sta moveto_params2::xcoord
lda moveto_params2::xcoord+1 lda moveto_params2::xcoord+1
sec sec
sbc moveto_params2::xcoord sbc moveto_params2::xcoord
@ -1986,19 +1993,19 @@ L9FE4: lda ($06),y
add16_8 paintbits_params2::viewloc::ycoord, paintbits_params2::maprect::y2, moveto_params2::ycoord add16_8 paintbits_params2::viewloc::ycoord, paintbits_params2::maprect::y2, moveto_params2::ycoord
add16 moveto_params2::ycoord, #1, moveto_params2::ycoord add16 moveto_params2::ycoord, #1, moveto_params2::ycoord
add16_8 moveto_params2::ycoord, font_height, moveto_params2::ycoord add16_8 moveto_params2::ycoord, font_height, moveto_params2::ycoord
ldx #$03 ldx #3
LA06E: lda moveto_params2,x : lda moveto_params2,x
sta L9F94,x sta L9F94,x
dex dex
bpl LA06E bpl :-
bit L9F92 bit L9F92
bvc LA097 bvc LA097
MGTK_CALL MGTK::InitPort, grafport MGTK_CALL MGTK::InitPort, grafport
jsr LA63F jsr LA63F
LA085: jsr LA6A3 : jsr LA6A3
jsr LA097 jsr LA097
lda L9F93 lda L9F93
bne LA085 bne :-
MGTK_CALL MGTK::SetPortBits, grafport MGTK_CALL MGTK::SetPortBits, grafport
rts rts
@ -2014,31 +2021,33 @@ LA097: MGTK_CALL MGTK::HideCursor, DESKTOP_DIRECT ; These params should be igno
LA0B6: MGTK_CALL MGTK::PaintBits, paintbits_params LA0B6: MGTK_CALL MGTK::PaintBits, paintbits_params
MGTK_CALL MGTK::SetPenMode, penXOR_2 MGTK_CALL MGTK::SetPenMode, penXOR_2
LA0C2: MGTK_CALL MGTK::PaintBits, paintbits_params2 LA0C2: MGTK_CALL MGTK::PaintBits, paintbits_params2
ldy #$02 ldy #icon_entry_offset_type
lda ($06),y lda ($06),y
and #$80 and #$80
beq LA0F2 beq LA0F2
jsr LA14D jsr LA14D
MGTK_CALL MGTK::SetPattern, dark_pattern MGTK_CALL MGTK::SetPattern, dark_pattern ; shade for open volume
bit L9F92 bit L9F92
bmi LA0E6 bmi LA0E6
MGTK_CALL MGTK::SetPenMode, penBIC_2 MGTK_CALL MGTK::SetPenMode, penBIC_2
beq LA0EC beq LA0EC
LA0E6: MGTK_CALL MGTK::SetPenMode, penOR_2 LA0E6: MGTK_CALL MGTK::SetPenMode, penOR_2
LA0EC: MGTK_CALL MGTK::PaintRect, paintrect_params6 LA0EC: MGTK_CALL MGTK::PaintRect, paintrect_params6
LA0F2: ldx #$03
LA0F4: lda L9F94,x LA0F2: ldx #3
: lda L9F94,x
sta moveto_params2,x sta moveto_params2,x
dex dex
bpl LA0F4 bpl :-
MGTK_CALL MGTK::MoveTo, moveto_params2 MGTK_CALL MGTK::MoveTo, moveto_params2
bit L9F92 bit L9F92
bmi LA10C bmi :+
lda #$7F lda #MGTK::textbg_white
bne LA10E bne setbg
LA10C: lda #$00 : lda #MGTK::textbg_black
LA10E: sta set_text_mask_params setbg: sta settextbg_params
MGTK_CALL MGTK::SetTextBG, set_text_mask_params MGTK_CALL MGTK::SetTextBG, settextbg_params
lda text_buffer+1 lda text_buffer+1
and #$DF and #$DF
sta text_buffer+1 sta text_buffer+1
@ -2046,11 +2055,12 @@ LA10E: sta set_text_mask_params
MGTK_CALL MGTK::ShowCursor MGTK_CALL MGTK::ShowCursor
rts rts
LA12C: ldx #$0F LA12C: ldx #.sizeof(paintbits_params)-1
LA12E: lda paintbits_params2,x : lda paintbits_params2,x
sta paintbits_params,x sta paintbits_params,x
dex dex
bpl LA12E bpl :-
ldy paintbits_params::maprect::y2 ldy paintbits_params::maprect::y2
LA13A: lda paintbits_params::mapwidth LA13A: lda paintbits_params::mapwidth
clc clc
@ -2066,28 +2076,29 @@ LA14D: ldx #$00
LA14F: lda paintbits_params2::viewloc::xcoord,x LA14F: lda paintbits_params2::viewloc::xcoord,x
clc clc
adc paintbits_params2::maprect::x1,x adc paintbits_params2::maprect::x1,x
sta paintrect_params6,x sta paintrect_params6::x1,x
lda paintbits_params2::viewloc::xcoord+1,x lda paintbits_params2::viewloc::xcoord+1,x
adc paintbits_params2::maprect::x1+1,x adc paintbits_params2::maprect::x1+1,x
sta paintrect_params6::left+1,x sta paintrect_params6::x1+1,x
lda paintbits_params2::viewloc::xcoord,x lda paintbits_params2::viewloc::xcoord,x
clc clc
adc paintbits_params2::maprect::x2,x adc paintbits_params2::maprect::x2,x
sta paintrect_params6::right,x sta paintrect_params6::x2,x
lda paintbits_params2::viewloc::xcoord+1,x lda paintbits_params2::viewloc::xcoord+1,x
adc paintbits_params2::maprect::x2+1,x adc paintbits_params2::maprect::x2+1,x
sta paintrect_params6::right+1,x sta paintrect_params6::x2+1,x
inx inx
inx inx
cpx #$04 cpx #$04
bne LA14F bne LA14F
lda paintrect_params6::bottom lda paintrect_params6::y2
sec sec
sbc #$01 sbc #$01
sta paintrect_params6::bottom sta paintrect_params6::y2
bcs LA189 bcs LA189
dec paintrect_params6::bottom+1 dec paintrect_params6::y2+1
LA189: rts LA189: rts
.endproc
;;; ================================================== ;;; ==================================================
@ -2196,7 +2207,7 @@ LA256: lsr a
sta poly::v3::xcoord sta poly::v3::xcoord
sta poly::v4::xcoord sta poly::v4::xcoord
lda poly::v5::xcoord+1 lda poly::v5::xcoord+1
adc #$00 adc #0
sta poly::v3::xcoord+1 sta poly::v3::xcoord+1
sta poly::v4::xcoord+1 sta poly::v4::xcoord+1
jsr pop_zp_addrs jsr pop_zp_addrs
@ -2229,11 +2240,11 @@ LA2B5: bmi LA2AA
asl a asl a
tax tax
copy16 icon_ptrs,x, $06 copy16 icon_ptrs,x, $06
ldy #$02 ldy #icon_entry_offset_type
lda ($06),y lda ($06),y
and #$0F and #$0F
bne LA2DD bne LA2DD
ldy #$00 ldy #0
lda ($06),y lda ($06),y
sta LA2A9 sta LA2A9
DESKTOP_DIRECT_CALL DT_UNHIGHLIGHT_ICON, LA2A9 DESKTOP_DIRECT_CALL DT_UNHIGHLIGHT_ICON, LA2A9
@ -2244,7 +2255,7 @@ LA2DD: pla
LA2E3: stx LA322 LA2E3: stx LA322
sta LA323 sta LA323
ldx #$00 ldx #0
LA2EB: lda icon_table,x LA2EB: lda icon_table,x
cmp LA323 cmp LA323
beq LA2FA beq LA2FA
@ -2277,7 +2288,7 @@ LA323: .byte 0
LA324: stx LA363 LA324: stx LA363
sta LA364 sta LA364
ldx #$00 ldx #0
LA32C: lda highlight_list,x LA32C: lda highlight_list,x
cmp LA364 cmp LA364
beq LA33B beq LA33B
@ -2468,7 +2479,7 @@ LA44D: cpx #$FF ; =-1
asl a asl a
tax tax
copy16 icon_ptrs,x, ptr copy16 icon_ptrs,x, ptr
ldy #2 ; type??? offset ldy #icon_entry_offset_type
lda (ptr),y lda (ptr),y
and #$07 ; low bits and #$07 ; low bits
cmp LA3AD cmp LA3AD
@ -3157,15 +3168,14 @@ label_get_size:
label_rename_icon: label_rename_icon:
PASCAL_STRING "Rename an Icon ..." PASCAL_STRING "Rename an Icon ..."
desktop_menu: desktop_menu:
DEFINE_MENU_BAR 6 DEFINE_MENU_BAR 6
DEFINE_MENU_BAR_ITEM 1, label_apple, apple_menu DEFINE_MENU_BAR_ITEM menu_id_apple, label_apple, apple_menu
DEFINE_MENU_BAR_ITEM 2, label_file, file_menu DEFINE_MENU_BAR_ITEM menu_id_file, label_file, file_menu
DEFINE_MENU_BAR_ITEM 4, label_view, view_menu DEFINE_MENU_BAR_ITEM menu_id_view, label_view, view_menu
DEFINE_MENU_BAR_ITEM 5, label_special, special_menu DEFINE_MENU_BAR_ITEM menu_id_special, label_special, special_menu
DEFINE_MENU_BAR_ITEM 8, label_startup, startup_menu DEFINE_MENU_BAR_ITEM menu_id_startup, label_startup, startup_menu
DEFINE_MENU_BAR_ITEM 3, label_selector, selector_menu DEFINE_MENU_BAR_ITEM menu_id_selector, label_selector, selector_menu
file_menu: file_menu:
DEFINE_MENU 12 DEFINE_MENU 12
@ -4118,6 +4128,15 @@ addr: .addr 0
.org $D000 .org $D000
;;; Constants needed in both main and aux
menu_id_apple := 1
menu_id_file := 2
menu_id_view := 4
menu_id_special := 5
menu_id_startup := 8
menu_id_selector := 3
;;; Various routines callable from MAIN ;;; Various routines callable from MAIN
;;; ================================================== ;;; ==================================================
@ -4417,6 +4436,7 @@ screentowindow_windowy:
LD211: .byte 0 LD211: .byte 0
;;; ============================================================
.proc getwinport_params2 .proc getwinport_params2
window_id: .byte 0 window_id: .byte 0
@ -4434,7 +4454,7 @@ penloc: DEFINE_POINT 0, 0
penwidth: .byte 0 penwidth: .byte 0
penheight: .byte 0 penheight: .byte 0
penmode: .byte 0 penmode: .byte 0
textbg: .byte 0 textbg: .byte MGTK::textbg_black
fontptr: .addr 0 fontptr: .addr 0
.endproc .endproc
@ -4449,7 +4469,7 @@ penloc: DEFINE_POINT 0, 0
penwidth: .byte 0 penwidth: .byte 0
penheight: .byte 0 penheight: .byte 0
penmode: .byte 0 penmode: .byte 0
textbg: .byte 0 textbg: .byte MGTK::textbg_black
fontptr: .addr 0 fontptr: .addr 0
.endproc .endproc
grafport3_viewloc_xcoord := grafport3::viewloc::xcoord grafport3_viewloc_xcoord := grafport3::viewloc::xcoord
@ -4468,10 +4488,11 @@ penloc: DEFINE_POINT 0, 0
penwidth: .byte 1 penwidth: .byte 1
penheight: .byte 1 penheight: .byte 1
penmode: .byte 0 penmode: .byte 0
textbg: .byte 0 textbg: .byte MGTK::textbg_black
fontptr: .addr DEFAULT_FONT fontptr: .addr DEFAULT_FONT
.endproc .endproc
;;; ============================================================
white_pattern3: ; unused? white_pattern3: ; unused?
.byte %11111111 .byte %11111111
@ -4496,15 +4517,14 @@ black_pattern3: ; unused?
.byte $FF .byte $FF
checkerboard_pattern3: checkerboard_pattern3:
.byte px(%1010101) .byte %01010101
.byte PX(%0101010) .byte %10101010
.byte px(%1010101) .byte %01010101
.byte PX(%0101010) .byte %10101010
.byte px(%1010101) .byte %01010101
.byte PX(%0101010) .byte %10101010
.byte px(%1010101) .byte %01010101
.byte PX(%0101010) .byte %10101010
.byte $FF .byte $FF
;; Copies of ROM bytes used for machine identification ;; Copies of ROM bytes used for machine identification
@ -4991,11 +5011,21 @@ run_list_entries:
LDD9E: .byte 0 LDD9E: .byte 0
icon_entry_offset_index := 0
icon_entry_offset_state := 1
icon_entry_offset_type := 2
icon_entry_offset_iconx := 3
icon_entry_offset_icony := 5
icon_entry_offset_iconbits := 7
icon_entry_offset_len := 9
icon_entry_offset_name := 10
icon_entry_size := 27
;; Icon to File mapping table ;; Icon to File mapping table
;; ;;
;; each entry is 27 bytes long ;; each entry is 27 bytes long
;; .byte icon index ;; .byte icon index
;; .byte ?? ;; .byte ?? state bits?
;; .byte type/icon (bits 4,5,6 are type) ;; .byte type/icon (bits 4,5,6 are type)
;; $00 = directory ;; $00 = directory
;; $10 = system ;; $10 = system
@ -7449,7 +7479,7 @@ L4DF2: txa
lda selected_file_index,x lda selected_file_index,x
jsr file_address_lookup jsr file_address_lookup
stax $06 stax $06
ldy #$02 ldy #icon_entry_offset_type
lda ($06),y lda ($06),y
and #$70 and #$70
bne L4E10 bne L4E10
@ -7560,7 +7590,7 @@ L4EC3: sta buf3len
sta LE22F sta LE22F
jsr file_address_lookup jsr file_address_lookup
stax $06 stax $06
ldy #$02 ldy #icon_entry_offset_type
lda ($06),y lda ($06),y
and #$7F and #$7F
sta ($06),y sta ($06),y
@ -8416,7 +8446,7 @@ L55D1: ldx L544A
sta selected_file_index sta selected_file_index
jsr file_address_lookup jsr file_address_lookup
stax $06 stax $06
ldy #$02 ldy #icon_entry_offset_type
lda ($06),y lda ($06),y
and #$0F and #$0F
sta selected_window_index sta selected_window_index
@ -8429,7 +8459,7 @@ L55F0: ldx L544A
sta LE22F sta LE22F
jsr file_address_lookup jsr file_address_lookup
stax $06 stax $06
ldy #$02 ldy #icon_entry_offset_type
lda ($06),y lda ($06),y
and #$0F and #$0F
sta getwinport_params2::window_id sta getwinport_params2::window_id
@ -8448,7 +8478,7 @@ L562B: rts
L562C: lda LE22F L562C: lda LE22F
jsr file_address_lookup jsr file_address_lookup
stax $06 stax $06
ldy #$02 ldy #icon_entry_offset_type
lda ($06),y lda ($06),y
and #$0F and #$0F
sta getwinport_params2::window_id sta getwinport_params2::window_id
@ -9384,7 +9414,7 @@ L5DF7: ldx $E256
L5DFC: lda L5CD9 ; after a double-click (on file or folder) L5DFC: lda L5CD9 ; after a double-click (on file or folder)
jsr file_address_lookup jsr file_address_lookup
stax $06 stax $06
ldy #2 ; byte type icon offset ldy #icon_entry_offset_type
lda ($06),y lda ($06),y
and #$70 ; bits 4-6 and #$70 ; bits 4-6
cmp #$10 ; $10 = system cmp #$10 ; $10 = system
@ -9795,9 +9825,9 @@ L6227: sta buf3len
lda ($06),y lda ($06),y
and #$0F and #$0F
beq L6276 beq L6276
ldy #$02 ldy #icon_entry_offset_type
lda ($06),y lda ($06),y
and #$7F and #$7F ; clear high bit
sta ($06),y sta ($06),y
and #$0F and #$0F
sta selected_window_index sta selected_window_index
@ -10140,27 +10170,28 @@ L66F2: dex
MGTK_RELAY_CALL MGTK::CheckItem, checkitem_params MGTK_RELAY_CALL MGTK::CheckItem, checkitem_params
rts rts
L670C: lda #$01 L670C: lda #MGTK::disableitem_disable
sta disableitem_params::disable sta disableitem_params::disable
lda #$02 lda #menu_id_file
sta disableitem_params::menu_id sta disableitem_params::menu_id
lda #$03 lda #3 ; > Open
jsr L673A jsr disable_menu_item
lda #$05 lda #menu_id_special
sta disableitem_params::menu_id sta disableitem_params::menu_id
lda #$07 lda #7 ; > Lock
jsr L673A jsr disable_menu_item
lda #$08 lda #8 ; > Unlock
jsr L673A jsr disable_menu_item
lda #$0A lda #10 ; > Get Info
jsr L673A jsr disable_menu_item
lda #$0B lda #11 ; > Get Size
jsr L673A jsr disable_menu_item
lda #$0D lda #13 ; > Rename Icon
jsr L673A jsr disable_menu_item
rts rts
L673A: sta disableitem_params::menu_item disable_menu_item:
sta disableitem_params::menu_item
MGTK_RELAY_CALL MGTK::DisableItem, disableitem_params MGTK_RELAY_CALL MGTK::DisableItem, disableitem_params
rts rts
@ -10486,11 +10517,11 @@ L6AA7: stx bufnum
lda LE6BE lda LE6BE
jsr file_address_lookup jsr file_address_lookup
stax $06 stax $06
ldy #$02 ldy #icon_entry_offset_type
lda ($06),y lda ($06),y
ora #$80 ora #$80 ; set high bit
sta ($06),y sta ($06),y
ldy #$02 ldy #icon_entry_offset_type
lda ($06),y lda ($06),y
and #$0F and #$0F
sta getwinport_params2::window_id sta getwinport_params2::window_id
@ -10564,11 +10595,11 @@ L6B68: lda #$01
lda LE6BE lda LE6BE
jsr file_address_lookup jsr file_address_lookup
stax $06 stax $06
ldy #$02 ldy #icon_entry_offset_type
lda ($06),y lda ($06),y
ora #$80 ora #$80
sta ($06),y sta ($06),y
ldy #$02 ldy #icon_entry_offset_type
lda ($06),y lda ($06),y
and #$0F and #$0F
sta getwinport_params2::window_id sta getwinport_params2::window_id
@ -11459,12 +11490,12 @@ L7471: lda ($06),y
bne L7471 bne L7471
lda #$20 lda #$20
sta ($08),y sta ($08),y
ldy #$02 ldy #icon_entry_offset_type
lda ($08),y lda ($08),y
and #$DF and #$DF
sta ($08),y sta ($08),y
jsr pop_zp_addrs jsr pop_zp_addrs
ldy #$02 ldy #icon_entry_offset_type
lda ($06),y lda ($06),y
and #$0F and #$0F
bne L74D3 bne L74D3
@ -11620,7 +11651,7 @@ L75A3: sta ($06),y
lda LE6BE lda LE6BE
jsr file_address_lookup jsr file_address_lookup
stax $06 stax $06
ldy #$02 ldy #icon_entry_offset_type
lda ($06),y lda ($06),y
and #$0F and #$0F
beq L75FA beq L75FA
@ -11890,9 +11921,9 @@ L7862: lda L762A
inc L762B inc L762B
L7870: lda bufnum L7870: lda bufnum
ora L7624 ora L7624
ldy #$02 ldy #icon_entry_offset_type
sta ($08),y sta ($08),y
ldy #$07 ldy #icon_entry_offset_iconbits
lda L7622 lda L7622
sta ($08),y sta ($08),y
iny iny
@ -12213,7 +12244,7 @@ L7C36: tax
lda buf3,x lda buf3,x
jsr file_address_lookup jsr file_address_lookup
stax $06 stax $06
ldy #$02 ldy #icon_entry_offset_type
lda ($06),y lda ($06),y
and #$0F and #$0F
cmp L7D5C cmp L7D5C
@ -13920,8 +13951,8 @@ use_floppy140_icon:
sta ($06),y sta ($06),y
selected_device_icon: selected_device_icon:
ldy #$02 ldy #icon_entry_offset_type
lda #$00 lda #0
sta ($06),y sta ($06),y
inc device_num inc device_num
lda device_num lda device_num
@ -14004,7 +14035,7 @@ L8B3E: lda #$00
L8B43: lda LE6BE L8B43: lda LE6BE
jsr file_address_lookup jsr file_address_lookup
stax $06 stax $06
ldy #$02 ldy #icon_entry_offset_type
lda ($06),y lda ($06),y
and #$7F and #$7F
sta ($06),y sta ($06),y
@ -14484,7 +14515,7 @@ L8FA1: jsr L8FE1
L8FA7: asl a L8FA7: asl a
tay tay
copy16 file_address_table,y, $06 copy16 file_address_table,y, $06
ldy #$02 ldy #icon_entry_offset_type
lda ($06),y lda ($06),y
rts rts
@ -17839,7 +17870,7 @@ LAFB9: lda winfoF
LAFE9: addr_jump LAFF8, desktop_aux::str_no_label LAFE9: addr_jump LAFF8, desktop_aux::str_no_label
LAFF0: ldy #$02 LAFF0: ldy #2
lda ($06),y lda ($06),y
tax tax
dey dey
@ -19528,10 +19559,10 @@ L092F: lda #0
sta buf3 sta buf3
jsr desktop_main::file_address_lookup jsr desktop_main::file_address_lookup
stax $06 stax $06
ldy #$02 ldy #icon_entry_offset_type
lda #$70 lda #$70 ; $70 is Trash Can
sta ($06),y sta ($06),y
ldy #$07 ldy #icon_entry_offset_iconbits
lda #<desktop_aux::trash_icon lda #<desktop_aux::trash_icon
sta ($06),y sta ($06),y
iny iny

View File

@ -518,6 +518,7 @@ zp_preserve := 1<<7
;;; Used in various state blocks ;;; Used in various state blocks
colormask_and := $FF colormask_and := $FF
colormask_or := $00 colormask_or := $00
textbg_black := $00
textbg_white := $7F textbg_white := $7F
;;; ================================================== ;;; ==================================================
@ -578,6 +579,11 @@ menuopt_item_is_checked := 1 << 5
menuopt_item_is_filler := 1 << 6 menuopt_item_is_filler := 1 << 6
menuopt_disable_flag := 1 << 7 menuopt_disable_flag := 1 << 7
disablemenu_enable := 0
disablemenu_disable := 1
disableitem_enable := 0
disableitem_disable := 1
;;; Response from InRect/InPoly ;;; Response from InRect/InPoly
inrect_inside := $80 inrect_inside := $80
inrect_outside := $00 inrect_outside := $00