;+
; Project     :	SOLAR-B - EIS
;
; Name        :	EIS_CPT_OBSTBL_CHECK
;
; Purpose     :	Checks OBSTBL parameters are in range.
;
; Explanation : Checks various parameters associated with the OBSTBL.
;
; Use         :	< res = eis_cpt_obstbl_check(start_address,header,ulba,data) >
;
; Inputs      :	None.
;
; Opt. Inputs : None.
;
; Outputs     : res    : INT FLAG indicating result
;                           1 : ok
;                           0 : not ok
;               start_address : UINT 16 least significant bits of start address
;               header   : STRING OBSTBL header string.
;               ulba     : UINT upper linear base address.
;               data     : BYTARR[] OBSTBL data
;
; Opt. Inputs : None.
;
; Outputs     : result   : status flag
;                       0 : if checks failed.
;                       1 : checks OK.
;
; Opt. Outputs:	None.
;
; Keywords    : None.
;
; Calls       : None.
;
; Common      :	None.
;
; Restrictions:	None.
;
; Side effects:	None.
;
; Category    :	EIS_CPT.
;
; Prev. Hist. :	None.
;
; Written     :	Martin Carter RAL 29/04/05
;
; Modified    :	Version 0.0, 29/04/05, MKC
;
; Version     :	Version 0.0, 29/04/05
;-
;**********************************************************

FUNCTION eis_cpt_obstbl_check, start_address, header, ulba, data

  ; check amount of data

  IF N_ELEMENTS(data) GT !EIS_CPT_CONSTANTS.obstbl_size THEN BEGIN

    eis_cpt_message, 'INVALID DATA IN OBSTBL INTEL HEX FILE'

    GOTO, error

  ENDIF

  ; check ulba

  IF ulba NE UINT(ISHFT(!EIS_CPT_CONSTANTS.obstbl_address,-16)) THEN BEGIN

    eis_cpt_message, 'INVALID ULBA IN OBSTBL'

    GOTO, error

  ENDIF

  ; check start address

  IF start_address NE 0 THEN BEGIN

    eis_cpt_message, 'INVALID START ADDRESS IN OBSTBL'

    GOTO, error

  ENDIF

  ; return OK flag

  RETURN, 1

error :

  ; issue routine name

  MESSAGE, 'ERROR', /INFORMATIONAL

  ; return error flag

  RETURN, 0

END





