		*********************************
		*                               *
		*   Visual Shell v1.17  10/92   *
		*                               *
		*     by Torsten Jürgeleit      *
		*                               *
		*    equates and structures     *
		*                               *
		*********************************

;---------------------------------------------------------------------------
; Support macros
;---------------------------------------------------------------------------

CALL	MACRO
	XREF	\1
	jsr	\1
	ENDM

LINKSYS	MACRO
	XREF	_LVO\1
	LINKLIB _LVO\1,\2
	ENDM

CALLSYS	MACRO
	XREF	_LVO\1
	CALLLIB _LVO\1
	ENDM

PUSH	MACRO
	movem.l	\1,-(sp)
	ENDM

PULL	MACRO
	movem.l	(sp)+,\1
	ENDM

;---------------------------------------------------------------------------
; Equates
;---------------------------------------------------------------------------

SHIFTED				EQU	50
ALTERNATED			EQU	100

IECODE_RETURN			EQU	$44
IECODE_UP_ARROW			EQU	$4c
IECODE_DOWN_ARROW		EQU	$4d
IECODE_F1			EQU	$50

QUALIFIER_MASK			EQU	(~(IEQUALIFIER_RELATIVEMOUSE|IEQUALIFIER_CAPSLOCK))

MAX_QUALIFIER_KEYS		EQU	7
MAX_ACTION_KEYS			EQU	(MAX_QUALIFIER_KEYS+32)
MAX_DIR_NAME_LEN		EQU	500
MAX_FILE_NAME_LEN		EQU	30
MAX_PATH_NAME_LEN		EQU	(MAX_DIR_NAME_LEN+MAX_FILE_NAME_LEN)
MAX_FILE_SIZE_LEN		EQU	8
MAX_FREQ_LINE_LEN		EQU	(MAX_FILE_NAME_LEN+MAX_FILE_SIZE_LEN+1)
MAX_FREQ_LINE_WIDTH		EQU	(MAX_FREQ_LINE_LEN*8)
MAX_SEARCH_STRING_LEN		EQU	90
MAX_PATTERN_LEN			EQU	90
MAX_HEX_LONG_WORDS		EQU	4   /* display 16 bytes per line */
MAX_QVIEW_LONG_WORDS		EQU	3   /* display 12 bytes per line */
MAX_TREE_NODE_NAME_LEN		EQU	10
MAX_PROTECTION_BITS		EQU	9

ENTRY_TYPE_FILE			EQU	0
ENTRY_TYPE_DIR			EQU	1
ENTRY_TYPE_ASSIGN		EQU	ENTRY_TYPE_FILE
ENTRY_TYPE_DEVICE		EQU	ENTRY_TYPE_DIR

COLOR0				EQU	0
COLOR1				EQU	1
COLOR2				EQU	2
COLOR3				EQU	3

SCROLL_SPEED_SLOW		EQU	1
SCROLL_SPEED_NORMAL		EQU	2
SCROLL_SPEED_FAST		EQU	3

VIEW_MODE_ASCII			EQU	0
VIEW_MODE_HEX			EQU	1

FREQ_MODE_INFO			EQU	3
FREQ_MODE_QUICK_VIEW		EQU	4

INFO_LINE_MODE_NORMAL		EQU	0
INFO_LINE_MODE_EMPTY		EQU	1

VSH_ACTION_F4			EQU	4
VSH_ACTION_F10			EQU	10
VSH_ACTION_ESC			EQU	13
VSH_ACTION_RETURN		EQU	14
VSH_ACTION_NUM_7		EQU	15
VSH_ACTION_NUM_9		EQU	18
VSH_ACTION_NUM_6		EQU	23
VSH_ACTION_NUM_0		EQU	24
VSH_ACTION_NUM_LEFT_BRAKET	EQU	25
VSH_ACTION_NUM_MINUS		EQU	29
VSH_ACTION_NUM_ENTER		EQU	31
VSH_ACTION_SPEED_SEARCH		EQU	33
VSH_ACTION_GADGET_END_KEY	EQU	34   /* esc, return and enter */
VSH_ACTION_QUALIFIER		EQU	35
VSH_ACTION_NUMLOCK		EQU	36
VSH_ACTION_SCROLL_TOP		EQU	VSH_ACTION_NUM_7
VSH_ACTION_SCROLL_PAGE_UP	EQU	VSH_ACTION_NUM_9
VSH_ACTION_SCROLL_RIGHT		EQU	VSH_ACTION_NUM_6
VSH_ACTION_MARK_FILE		EQU	VSH_ACTION_NUM_0
VSH_ACTION_SHIFT_GADGET_END_KEY	EQU	(VSH_ACTION_GADGET_END_KEY+SHIFTED)

EVENT_MODE_IGNORE		EQU	0
EVENT_MODE_NORMAL		EQU	1
EVENT_MODE_INPUT		EQU	2
EVENT_MODE_ANSWER		EQU	3
EVENT_MODE_CONFIG		EQU	4

KEYBOARD_TYPE1			EQU	1
KEYBOARD_TYPE2			EQU	2

DUMP_MODE_ALL_CHARS		EQU	1
DUMP_MODE_ONLY_CHARS		EQU	2
DUMP_MODE_ASCII_CHARS		EQU	3

START_OF_PATH_NAME_LEN		EQU	10

;---------------------------------------------------------------------------
; Structures
;---------------------------------------------------------------------------

	STRUCTURE FileNode,0
	STRUCT	fn_Node,MLN_SIZE
	STRUCT	fn_Date,ds_SIZEOF
	APTR	fn_Path
	ULONG	fn_Pos
	ULONG	fn_Size
	UBYTE	fn_Type
	UBYTE	fn_Marked
	USHORT	fn_NameLen
	USHORT	fn_Protection
	STRUCT	fn_Text,MAX_FREQ_LINE_LEN+1
	LABEL	FileNode_Sizeof

	STRUCTURE LineNode,0
	STRUCT	ln_Node,MLN_SIZE
	APTR	ln_Line
	ULONG	ln_Offset
	ULONG	ln_Pos
	USHORT	ln_LineLen
	LABEL	LineNode_Sizeof

	STRUCTURE TreeNode,0
	STRUCT	tn_Node,MLN_SIZE
	STRUCT	tn_List,MLH_SIZE
	APTR	tn_ParentNode
	ULONG	tn_XPos;
	ULONG	tn_YPos
	ULONG	tn_MaxDirs
	ULONG	tn_MaxDepth
	STRUCT	tn_Name,MAX_FILE_NAME_LEN+1
	LABEL	TreeNode_Sizeof

	STRUCTURE Display,0
	USHORT	d_Mode
	USHORT	d_LeftEdge
	USHORT	d_TopEdge
	USHORT	d_Width
	USHORT	d_VisibleLines
	ULONG	d_NumEntries
	APTR	d_List
	APTR	d_FirstVisibleNode
	LABEL	Display_Sizeof

	STRUCTURE Info,0
	USHORT	i_Valid
	ULONG	i_NumSoftErrors
	ULONG	i_DiskState
	ULONG	i_BytesPerBlock
	ULONG	i_TotalSize
	ULONG	i_FreeSize
	ULONG	i_Dirs
	ULONG	i_Files
	ULONG	i_FileSizes
	STRUCT  i_LastChanged,ds_SIZEOF
	STRUCT	i_VolumeName,MAX_FILE_NAME_LEN+2
	LABEL	Info_Sizeof

	STRUCTURE FileRequest,0
	STRUCT	fr_Display,Display_Sizeof
	USHORT	fr_Mode
	SHORT	fr_CursorLine
	STRUCT	fr_DirName,MAX_DIR_NAME_LEN+2
	BPTR	fr_DirLock
	ULONG	fr_MarkedEntries
	ULONG	fr_MarkedSize
	ULONG	fr_SaveNumEntries
	SHORT	fr_SaveCursorLine
	ULONG	fr_SaveMarkedEntries
	ULONG	fr_SaveMarkedSize
	APTR	fr_SaveFileList
	APTR	fr_SaveFirstVisibleNode
	STRUCT	fr_Info,Info_Sizeof
	STRUCT	fr_FilePattern,MAX_PATTERN_LEN+2
	STRUCT	fr_MarkPattern,MAX_PATTERN_LEN+2
	STRUCT	fr_UnmarkPattern,MAX_PATTERN_LEN+2
	STRUCT	fr_AnchorPath,ap_SIZEOF+2   ; need +2 for BYTE struct AnchorPath.ap_Buf[1] in arpbase.h
	LABEL	FileRequest_Sizeof

	STRUCTURE ViewRequest,0
	STRUCT	vr_Display,Display_Sizeof
	USHORT	vr_Mode
	APTR	vr_FileName
	APTR	vr_Buffer
	ULONG	vr_BufferSize
	USHORT	vr_MarkedEntries
	STRUCT	vr_LastSearchString,MAX_SEARCH_STRING_LEN+1
	LABEL	ViewRequest_Sizeof

	STRUCTURE HistoryRequest,0
	STRUCT	hr_Display,Display_Sizeof
	SHORT	hr_CursorLine
	APTR	hr_Buffer
	STRUCT	hr_LastSearchString,MAX_SEARCH_STRING_LEN+1
	LABEL	HistoryRequest_Sizeof

	STRUCTURE TreeRequest,0
	STRUCT	tr_Display,Display_Sizeof
	APTR	tr_DirNode
	APTR	tr_CursorNode
	USHORT	tr_Columns
	USHORT	tr_Rows
	ULONG	tr_XPos
	ULONG	tr_YPos
	STRUCT	tr_DeviceName,MAX_FILE_NAME_LEN+2
	STRUCT	tr_DirName,MAX_DIR_NAME_LEN+2
	STRUCT	tr_RootNode,TreeNode_Sizeof
	LABEL	TreeRequest_Sizeof
