; Linked icon block structure (active and buffered)
; Pointed to by workspace!active_ptr and workspace!buffered_ptr (two lists)
^ 0
next_ptr # 4 ; Pointer to next in chain (-1 if none)
prev_ptr # 4 ; Pointer to previous entry in chain (-1 if none)
icon_handle # 4 ; Icon handle (for buffered, open to right of icon handle)
icon_id # 4 ; Icon identifier
icon_filetype # 4 ; File type of the file to which the icon pertains
icon_spritename # 14 ; Sprite name
icon_filename # 0 ; Full pathname of the file
( Size of filname bytes on top of this)
ASSERT next_ptr=0
; ----------------------------------------------------------------------------------------------------------------------
All the workspace: Takes up about 2K I think.
; Workspace layout
indirected_space * 256
workspace RN R12
^ 0,workspace
wsorigin # 0
mytaskhandle # 4 ; put here so we know where it is
Filer_taskid # 4 ; Filer's task id - needed to detect a copy operation
buffered_ptr # 4 ; head of list of buffered files
active_ptr # 4 ; head of list of active icons
monotonic_icon_id # 4 ; Monotonically increasing icon identifier (for removals)
tinydir_icon # 4 ; Flag to say we have a tinydirs icon
max_idle_work * (@-wsorigin)
file_store # 12 ; store for 'file_???'
my_reference # 4 ; Wimp message reference
no_selected # 4 ; Number of icons selected
no_icons # 4 ; Number of icons known about
remove_line # 32 ; Remove menu option
selection_line # 16 ; Clear selection menu option
bounding_box # 16 ; Screen coordinates (bl,tr)
vdu_vars # 24 ; VDU variables for finding bounding box
dest_x # 4 ; Destination of load - x position
dest_y # 4 ; Destination of load - y position
dest_window # 4 ; Destination of load - window handle
dest_icon # 4 ; Destination of load - icon handle
source_icon # 4 ; Icon from which we are sending the DataLoad
weak_selection # 4 ; Set if and only if last icon selected was created with Menu button
menu_icon # 4 ; Icon menu was produced on - needed for recreating menus
dest_taskid # 4 ; Destination taskid for messages
copy_options # 20 ; Copy options (read from CMOS RAM)
filer_action_copy_options # 4 ; Filer action copy options
control_status # 4 ; Control button status during a series of dataloads
poll_word # 4 ; Control status OR buffered_ptr
indirected_data # indirected_space ; Data area for indirected data from the template file
ALIGNHASH wsorigin,16
menu_store # &100 ; RAM copy of menu data
tinydir_menu # &100 ; Tinydir menu
dataarea # &100 ; wimp data block
dest_directory # &100 ; destination directory for copy operations
stackbot # &200 ; stack at most 512 bytes long
stacktop # 0
max_running_work * (@-wsorigin)