diff --git a/desktop.inc b/desktop.inc index 802d34f..0ac9c27 100644 --- a/desktop.inc +++ b/desktop.inc @@ -24,6 +24,10 @@ 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. +;;; Memory in AUX - $80 bytes for desktop and 8 windows. First byte is a +;;; count, up to 127 icon entries. $1F80-$1FFF is a map of used/free icon +;;; numbers. +WINDOW_ICON_TABLES := $1B00 ;; Quit routine signature/data copied_to_ramcard_flag := $D3FF diff --git a/desktop/desktop_main.s b/desktop/desktop_main.s index d83a52f..13cf0f8 100644 --- a/desktop/desktop_main.s +++ b/desktop/desktop_main.s @@ -15178,11 +15178,11 @@ end: sta RAMWRTON lda #$00 tax -loop: sta $1F00,x ; window 8, icon use map - sta $1E00,x ; window 6, 7 - sta $1D00,x ; window 4, 5 - sta $1C00,x ; window 2, 3 - sta $1B00,x ; window 0, 1 (0=desktop) +loop: sta WINDOW_ICON_TABLES + $400,x ; window 8, icon use map + sta WINDOW_ICON_TABLES + $300,x ; window 6, 7 + sta WINDOW_ICON_TABLES + $200,x ; window 4, 5 + sta WINDOW_ICON_TABLES + $100,x ; window 2, 3 + sta WINDOW_ICON_TABLES + $000,x ; window 0, 1 (0=desktop) inx bne loop sta RAMWRTOFF diff --git a/desktop/desktop_res.s b/desktop/desktop_res.s index 5ae70a8..12057fd 100644 --- a/desktop/desktop_res.s +++ b/desktop/desktop_res.s @@ -1348,12 +1348,12 @@ saved_event_coords: DEFINE_POINT 0, 0 window_icon_count_table: .repeat 9,i - .addr $1B00 + $80 * i + .addr WINDOW_ICON_TABLES + $80 * i .endrepeat window_icon_list_table: .repeat 9,i - .addr $1B00 + $80 * i + 1 + .addr WINDOW_ICON_TABLES + $80 * i + 1 .endrepeat active_window_id: