
;*******************************************************
;
;	SCSI Driver 'Flush' Filter
;
;	Written by Matt Gulick.		Started June 13,1988
;
;	Copyright Apple Computer, Inc. 1988,89
;
;*******************************************************

;*******************************************************
;
;	This file contains the subroutines needed by the
;	SCSI Driver to respond to the Flush call number
;	$0007.  In a Block Device Driver this will return a
;	Driver Bad Request error and perform no function.
;	In the case of a Character device however, this will
;	need to request that the target device finalize what
;	it was doing and flush it's buffers.
;
;*******************************************************

;*******************************************************
;
;	Revision History:
;
;*******************************************************

;	June 13,	1988	File started.
;	June 20,	1988	Added Register Status in comments

				STRING		PASCAL
				BLANKS		OFF
				PAGESIZE	70
				PRINT		NOGEN
				PRINT		NOMDIR
				MACHINE		M65816

				PRINT		OFF

				INCLUDE		'scsihd.equates'
				INCLUDE		'M16.MEMORY'
				INCLUDE		'M16.UTIL'
				PRINT		ON
			
;*******************************************************
;
;	This routine is used as the Flush code for a Block
;	Device Driver.
;
;	Inputs:		None.
;
;	Outputs:	Acc			=	0
;				Carry		=	0
;				Y register	=	Unspecified
;				X register	=	Unspecified
;				P register	=	0=M=X=e
;				Direct Page	=	GS/OS Direct Page
;				Data Bank	=	Ours
;
;	Errors:		DRVR_BAD_REQ.
;
;*******************************************************

			EXPORT	Flush
Flush		PROC
			lda		#drvr_bad_req
			sec
			rts
			ENDP
			
			END
             	
;*******************************************************
;
;	This routine is used as the Flush code for a
;	Character Device Driver.  This code is commented out
;	so that is available to any one who uses this SCSI
;	Driver Skeleton.
;
;	Inputs:		None.
;
;	Outputs:	Acc			=	Error
;				Carry		=	Set or Clear
;				Y register	=	Unspecified
;				X register	=	Unspecified
;				P register	=	0=M=X=e
;				Direct Page	=	GS/OS Direct Page
;				Data Bank	=	Ours
;
;	Errors:		Device not open Error	$0023
;				For other errors see Spec.
;
;*******************************************************
;
;				EXPORT	flush
;flush			PROC
;										;
;										; Is the device online?
;										;
;				ldy		#dib.dvcflag
;
;				lda		[dib_ptr],y
;				and		#dvc_online
;				bne		@flush			;Yes.
;										;
;										; Device is currently offline.
;										;
;				lda		#drvr_off_line
;				sec
;				rts
;										;
;										; Check Open Flag
;										;
;@flush			lda		|open_flag
;				beq		@dvc_closed
;
;				Insert Your Code Here.
;
;				lda		#$0000
;				clc
;				rts
;
;@dvc_closed	lda		#$drvr_not_open
;				sec
;				rts
;
;				ENDP
;

				END

				EJECT
