; Workspace.Hdr

;
;  Module workspace block, addressed via R12
;
				^ 0
Flags				# 4
Thumb_MaxWidth			# 4
Thumb_MaxHeight			# 4
TimeSlice			# 4
Filer_TaskHandle		# 4	; task handle of the Filer
  [ ARTWORKS <> 0
ArtWorks_Quality		# 4	; ArtWorks render quality
  ]
					; Note: the previous items are
					;	externally referenced

Vdu_Variables			# 0	; vdu variables. note the next four
					; entries must be kept in order as
					; they are an artworks vduvars block.
XEigFactor			# 4	;
YEigFactor			# 4	;
Log2BPP				# 4	;
  [ ARTWORKS <> 0
WimpPalette			# 80	; 20-word wimp palette for artworks

AWRender_Information		# 0	; awrender information block [order!]
XDitherOrigin			# 4
YDitherOrigin			# 4
ClipRect_x0			# 4
ClipRect_y0			# 4
ClipRect_x1			# 4
ClipRect_y1			# 4
XPrinterRect			# 4
YPrinterRect			# 4
PDriverJob			# 4

AWRender_Memory			# 0	; awrender memory [order!]
ResizableBase			# 4	;
ResizableSize			# 4     ;
FixedBase			# 4     ;
FixedSize			# 4     ;
  ]

Sprites_Base			# 4	; base address of sprite cache area
Sprites_Handle			# 4	; handle of sprite cache area
Heap_Base			# 4	; base address of workspace heap
Heap_Handle			# 4	; handle of workspace heap
Draw_BBox			# 16	; bounding box for drawfiles
Draw_Transform			# 24	; transformation matrix for drawfiles
					; and artworks
NewValidation			# 16	; replacement icon validation string
					; (14 characters most used)
CreateWindow			# 4	; non-zero to patch 'this' window
Display_First			# 4	; address of first display block
Image_Address			# 4	; address of the current file, so it
					; can be freed if an error occurs
PlotIcon			# 4	; original R1 given to Wimp_PlotIcon
Sprite_Counter			# 4	; counter for naming icons
Scratch				# 16	; scratch for intermediate strings
SmallSpriteName			# 12	; small sprite name (for mini icons)
Scale_Block			# 16	; scaling block for bitmaps
Icon_Block			# 32	; Wimp_PlotIcon block
Window_Block			# 88	; Wimp_GetWindowInfo block (first
					; word contains the most recent
					; window handle)
Temp_Filename			# 256	; scratch for constructing filenames
TranslationTable		# 256	; translation table for sprites
ShrinkTime			# 4	; timer for heap shrinking
FSReject_First			# 4	; address of first fsreject block
  [ UPCALL_HANDLER <> 0
Upcall_Filename			# 256	; upcall handler's filename scratch
  ]
slack				# 0	; round up to MOVable size
sizeof_workspace		* @

;
;  Display block
;
				^ 0	; block addressed via R7
Display_Next			# 4	; pointer to the next display block
Display_Path			# 256	; pathname of this directory (careful now!)
Display_Handle			# 4	; window handle of this display
  [ HASHING <> 0
Display_Icons			# 32 * 4 ; icon chains
  |
Display_FirstIcon		# 4	; pointer to first icon block
  ]
sizeof_display			* @

;
;  Icon block
;
				^ 0	; block addressed via R8
Icon_Next			# 4	; pointer to the next icon block
Icon_Leafname			# 256	; leafname (careful now!)
Icon_FileType			# 4	; file type
Icon_Flags			# 4	; flags for this icon block
Icon_Validation			# 16	; validation string for sprite
Icon_SpriteArea			# 4	; location of this icon (0 to 2)
Icon_x0				# 4	; bounding box [order!]
Icon_y0				# 4	;
Icon_x1				# 4	;
Icon_y1				# 4	;
sizeof_icon			* @

;
;  Icon "locations" (for Icon_SpriteArea above)
;

Icon_Make			* 0	; icon needs making
Icon_Wimp			* 1	; icon is in Wimp pool
Icon_Ours			* 2	; icon is in our pool

;
;  Reject-FS-by-filename block
;
				^ 0
FSReject_Next			# 4	; pointer to the next reject block
FSReject_Wildcard		# 256	; wildcarded name to reject
sizeof_fsreject			* @

	END
