pro err_log, code, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11
;
;Code of
;	'STD_INFO': write out standard information for all records
;		p1 = irec
;		p2 = dpmode
;		p3 = dprate
;		p4 = sxt_pow
;		p5 = sxtcont
;		p6 = bcs_pow
;		p7 = bcs_cpu
;		p8 = bcs_fixext
;		p9 = hxt_pow
;		p10 = wbs_pow
;		p11 = time/date
;
;HISTORY:
;	Written Fall 1991 by M.Morrison
;	16-Jun-93 (MDM) - Added DEB_INFO option
;
;
bcs_dtype0 = ['PH_Data', '??????', 'Memory Dump', 'Stim/Cal', '???', 'Dummy Data?']
bcs_dtype = ['PH ', '???', 'Mem', 'Cal', '???', 'Dum']
;
str1 = '       '
str2 = '  '
;
case strupcase(code) of
    'STR': 		str2 = p1		;simply print the string

    'ONOFF': begin
	str1 = 'Extract: '
	str2 = ' CBA: ' + conv2str(p1, 'yesno')
	str2 = str2 + ' ATT: ' + conv2str(p2, 'yesno')
	str2 = str2 + ' BCS: ' + conv2str(p3, 'yesno')
	str2 = str2 + ' SXT: ' + conv2str(p4, 'yesno')
	str2 = str2 + ' HXT: ' + conv2str(p5, 'yesno')
	str2 = str2 + ' WBS: ' + conv2str(p6, 'yesno')
     end

    'STD_INFO': begin
	str1 = string(p1, format='(1x,i4)') + '  '
	;      xxxx/xxx__SXT P:xxx_C:xxxx__BCS P:xxx_C:xxx__WBS P:
	str2 = conv2str(p2,'dpmode') + '/' + conv2str(p3, 'dprate')
	str2 = str2 + '  SXT P:' + conv2str(p4, 'on_off')
	str2 = str2 + ' C:' + conv2str(p5, 'manauto')
	str2 = str2 + '  BCS P:' + conv2str(p6, 'on_off')
	str2 = str2 + ' C:' + conv2str(p7, 'on_off')
	str2 = str2 + ' M:' + bcs_dtype(p8)
	str2 = str2 + '  HXT P:' + conv2str(p9, 'on_off')
	str2 = str2 + '  WBS P:' + conv2str(p10, 'on_off')
	str2 = str2 + '  ' + p11
     end
    'DEB_INFO': begin
	str2 = 'VSXT: ' + strtrim(p1,2) + $
		'  VSXT2: ' + strtrim(p2,2) + $
		'  PST: ' + strtrim(p3,2) + $
		'  FST: ' + strtrim(p4,2) + $
		'  PDUM: ' + strtrim(p5,2) + $
		'  FDUM: ' + strtriM(p6,2) + $
		'  PSER: ' + string(p7, format='(i8)') + $
		'  FSER: ' + string(p8, format='(i8)') 
     end

    'TOTALS':		str2 = 'INF/' + p1 + ': ' + string(p3, format='(i8)') + ' ' + p2 + ' datasets' + $
					string(p4, format='(i8)') + ' bytes'
    'ELAPSED':		str2 = 'INF/GEN: Elapsed Time: ' + string(p1, format='(f8.2)') + ' minutes. for ' + strtrim(p2,2) + ' recs'

    'SXT_IMG_START': 	str2 = 'INF/SXT: New ' + p1 + ' expos start ' + strtrim(p2,2) + 'x' + $
				strtrim(p3,2) + '   NMF=' + strtrim(p4,2)
    'SXT_IMG_SAVE': 	str2 = 'INF/SXT: ' + p1 + ' ' + strtrim(p2,2) + 'x' + $
				strtrim(p3,2) + '   Image Saved'
    'SXT_P_IY_ERR':	str2 = 'ERR/SXT: Had to reset PFI IY (iy=64)'
    'SXT_EXT1PFI':	str2 = 'INF/SXT: ' + p1 + string(p2,p3,p4,p5,p6, format='(5i5)')
    'SXT_EXT1FFI':	str2 = 'INF/SXT: ' + p1 + string(p2,p3,p4,p5,p6,p7, format='(6i5)')
    'SXT_FFI_SYNC':	str2 = 'WRN/SXT: EXT1FFI Sync error: Expected' + string(p1,p2,format = '(2i4)') + $
						'  Actual: ' + string(p3,p4,format = '(2i4)')

    'BCS_DTYPE': 	str2 = 'INF/BCS: Data Type: ' + bcs_dtype(p1)
    'BCS_FDTYPE_CAL':	str2 = 'ERR/BCS: Data looks like stim /cal data - Forcing fixed extraction
    'BCS_FDTYPE_MEM':	str2 = 'ERR/BCS: Forcing memory dump data mode'
    'BCS_DUM_DATA':	str2 = 'WRN/BCS: Buffer full of dummy data
    'BCS_BLOCKMODE':	str2 = 'INF/BCS: Block Mode Dump ' + string(fix(p1))
    'BCS_NDATA':	str2 = 'INF/BCS: Normal queue data extraction.  #Bytes = ' + strtrim(p1,2)
    'BCS_HEADER':	str2 = 'INF/BCS: Header: ' + string(p1, format='(13i4)')
    'BCS_ACT<>EXP':	str2 = 'ERR/BCS: Actual.NE.Expected. Act=' + strtrim(p1) + ' Exp='+strtrim(p2,2)
    'BCS_SKIP_ALARM':	str2 = 'INF/BCS: Skipping more than expected.  Skip=' + strtrim(p1,2) + ' Exp=' + strtrim(p2,2)
    'BCS_CLOCK':	str2 = 'INF/BCS: BCS Clock = ' + string(p1,format='(i6)') + $
					' DS79,MSOD=' + string(p2,p3,format='(i6,i10)')   

    'WBS_GOT2':		str2 = 'INF/WBS: Two major frames accumulated'
    'WBS_ONLY_GOT1':	str2 = 'INF/WBS: Only have one MF. FI = ' + strtrim(p1,2)

    'HXA_SCAN':		str2 = 'INF/HXT: Write out HXA scan.  SS=' + strtrim(p1,2) + ' NPo=' + strtrim(p2,2)
endcase
;
ref_struct, ref
;
if (ref.log_print_scrn) then print, str1, str2
printf, ref.lun_err, str1, str2, format='(2a)'
;
end
