;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
; Copyright (c) 2000-2002 TIMEX Corporation.
; 
; This document is the property of, and contains information proprietary to
; TIMEX Corporation.  It is to be returned upon request.  Reproduction by any
; means, disclosure, or use of its contents for other than the expressed
; purpose for which it is loaned, without the written consent of TIMEX
; Corporation, is strictly prohibited.
;
; File Name  :  qcmacro.h
;
; Macro Names:  QC_CLR_SPI_FACTOR_FLAGS - clears the SPI factor flags
;               QC_SPI_INIT             - initialize serial interface
;
; Purpose    :  Macros for the QC Test routine.
;
; File Change History:
;
;               07/21/2000 LBC - Created for M841.
;
; M851 Development:
;
;				01/10/2002 RBR - Reused for M851
;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
; Macro Name :  QC_CLR_SPI_FACTOR_FLAGS
;
; Description:  Clear serial I/F interrupt factor flags.
;
; Assumptions:  BR = 0xff
;
; Usage      :  QC_CLR_SPI_FACTOR_FLAGS
;       
; Input(s)   :  none
;
; Output(s)  :  none
;
; Destroyed  :  none
;
; Macro Change History:
;
;               07/21/2000 LBC - Created macro.
;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

QC_CLR_SPI_FACTOR_FLAGS		MACRO

				; Clear all the SPI interrupt flags
				ld	[BR:@LOW(IntFlagSPI)], #(bFSTRA|bFSREC|bFSERR) 	
ENDM

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
; Macro Name :  QC_COMM_INIT
;
; Description:  Initialize Serial I/F control registers- as an SPI.
;
; Assumptions:  BR = 0xff
;
; Usage      :  QC_COMM_INIT
;       
; Input(s)   :  none
;
; Output(s)  :  none
;
; Destroyed  :  none
;
; Macro Change History:
;
;               07/24/2000 LBC - Created macro.
;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

QC_COMM_INIT 	MACRO

                QC_CLR_SPI_FACTOR_FLAGS
                ; initialize serial port data
                or  [BR:@LOW(SPIPorts)], #(bSIN|bSOUT)             	
                ; set serial port SIN port direction
                and [BR:@LOW(SPIPortsDirReg)], #@LOW(~bSIN)        	
                ; set serial port SOUT direction
                or  [BR:@LOW(SPIPortsDirReg)], #bSOUT		      	
				ld	[BR:@LOW(SPIConfigReg)], #(bESIF|bSMD0|bSMD1|bSCS0|bSCS1)

                ;clear RXEN & TXEN bits
                and     [BR:@LOW(SPIControlReg)], #@LOW(~bTXEN & ~bRXEN)                
                ;enable transmitting and receiving of data
                or      [BR:@LOW(SPIControlReg)], #(bTXEN|bRXEN)
                				
ENDM

