	IFND	RESOURCES_DISK_I
RESOURCES_DISK_I	SET	1
**
**	$VER: disk.i 27.10 (21.11.90)
**	Includes Release 40.16
**
**	disk.i -- external declarations for the disk resource
**
**	(C) Copyright 1985-1995 ESCOM AG
**	    All Rights Reserved
**

	IFND	EXEC_TYPES_I
	INCLUDE	"exec/types.i"
	ENDC	!EXEC_TYPES_I

	IFND	EXEC_LISTS_I
	INCLUDE	"exec/lists.i"
	ENDC	!EXEC_LISTS_I

	IFND	EXEC_PORTS_I
	INCLUDE	"exec/ports.i"
	ENDC	!EXEC_PORTS_I

	IFND	EXEC_INTERRUPTS_I
	INCLUDE	"exec/interrupts.i"
	ENDC	!EXEC_INTERRUPTS_I

	IFND	EXEC_LIBRARIES_I
	INCLUDE	"exec/libraries.i"
	ENDC	!EXEC_LIBRARIES_I


*********************************************************************
*
* Resource structures
*
*********************************************************************

    STRUCTURE DISCRESOURCEUNIT,MN_SIZE
	STRUCT	DRU_DISCBLOCK,IS_SIZE
	STRUCT	DRU_DISCSYNC,IS_SIZE
	STRUCT	DRU_INDEX,IS_SIZE
	LABEL	DRU_SIZE



    STRUCTURE DISCRESOURCE,LIB_SIZE
	APTR	DR_CURRENT	; pointer to current unit structure
	UBYTE	DR_FLAGS
	UBYTE	DR_pad
	APTR	DR_SYSLIB
	APTR	DR_CIARESOURCE
	STRUCT	DR_UNITID,4*4
	STRUCT	DR_WAITING,LH_SIZE
	STRUCT	DR_DISCBLOCK,IS_SIZE
	STRUCT	DR_DISCSYNC,IS_SIZE
	STRUCT	DR_INDEX,IS_SIZE
	APTR	DR_CURRTASK	; pointer to owning task for GiveUnit
	LABEL	DR_SIZE

	BITDEF	DR,ALLOC0,0	; unit zero is allocated
	BITDEF	DR,ALLOC1,1	; unit one is allocated
	BITDEF	DR,ALLOC2,2	; unit two is allocated
	BITDEF	DR,ALLOC3,3	; unit three is allocated
	BITDEF	DR,ACTIVE,7	; is the disc currently busy?


*********************************************************************
*
* Hardware Magic
*
*********************************************************************


DSKDMAOFF	EQU	$4000	; idle command for dsklen register


*********************************************************************
*
* Resource specific commands
*
*********************************************************************

*-- DR_NAME is a generic macro to get the name of the resource.  This
*-- way if the name is ever changed you will pick up the change
*-- automatically.
*--
*-- Normal usage would be:
*--
*-- internalName:	DISKNAME
*--

DISKNAME:	MACRO
		DC.B	'disk.resource',0
		DS.W	0
		ENDM

	LIBINIT LIB_BASE
	LIBDEF	DR_ALLOCUNIT
	LIBDEF	DR_FREEUNIT
	LIBDEF	DR_GETUNIT
	LIBDEF	DR_GIVEUNIT
	LIBDEF	DR_GETUNITID
	LIBDEF	DR_READUNITID

DR_LASTCOMM	EQU	DR_READUNITID


*********************************************************************
*
* drive types
*
*********************************************************************

DRT_AMIGA	EQU	$00000000
DRT_37422D2S	EQU	$55555555
DRT_EMPTY	EQU	$FFFFFFFF
DRT_150RPM	EQU	$AAAAAAAA

	ENDC	; RESOURCES_DISK_I
