
		LOAD		'Macros.dump'

		INCLUDE	'SS.equ'

;		INCLUDE	'Driver.equ'
;		INCLUDE	'Heap.aii.i'

;-----------------------------------------------
;
;	Imported addresses
;
;-----------------------------------------------

		IMPORT	S_CurBRTitle
		IMPORT	S_CurContHt
		IMPORT	S_CurContWd
		IMPORT	S_CurContXpt
		IMPORT	S_CurContYpt
		IMPORT	S_CurTLCell
		IMPORT	S_CurTLTitle
		IMPORT	S_DrawRegion
		IMPORT	S_SectRange
		IMPORT	S_WhereCell
		IMPORT	S_WhichCell

;-----------------------------------------------------------------------------
;	S_RedrawCellRange( TLCell:l,BRCell:l )
;
;	This routine draws the values of the range of cells passed to it,
;	including cells found in titles.

S_RedrawCellRange	PROC		EXPORT
				;Using	S_CurrentData

			input	BRCell:l,TLCell:l

			local	WorkBRCell1:l,WorkTLCell1:l
			local	WorkBRCell2:l,WorkTLCell2:l
			local	InPtr:l,Work1Ptr:l,Work2Ptr:l
			local	CurCol:w,Xcnt:w,Ycnt:w
			local	Cell:l,Widths:l,Xpt2:w,Ypt2:w,Xpt:w,Ypt:w
			local	WindowBRCell:l,ColOKFlag:w
			BEGIN

			lda		BRCell				; everybody is sending
			ldx		TLCell				; these inputs in the
			sta		TLCell				; wrong order
			stx		BRCell

			lda		BRCell+2
			ldx		TLCell+2
			sta		TLCell+2
			stx		BRCell+2

			in		S_CurContWd:w,S_CurContHt:w
			out		WindowBRCell:l,a:w,a:w
			XCall	S_WhichCell

			MoveLong	!WorkTLCell1,Work1Ptr
			MoveLong	!WorkTLCell2,Work2Ptr
			MoveLong	!TLCell,InPtr

			stz		ColOKFlag


			MoveLong	S_CurTLCell,WorkTLCell2
			MoveLong	WindowBRCell,WorkBRCell2

			in		Work2Ptr:l,InPtr:l,Work1Ptr:l
			out		a:w
			XCall	S_SectRange


			in		WorkTLCell1:l
			out		a:w,a:w,Xpt:w,Ypt:w
			XCall	S_WhereCell

			in		WorkBRCell1:l
			out		Xpt2:w,Ypt2:w,a:w,a:w
			XCall	S_WhereCell


	;	Does BothTitle need to be drawn	;

			CmpWord	#S_EditHeight+S_ColLabelHeight,S_CurContYpt
			jeq		doneBothTitle

			CmpWord	#S_NumLabelWidth,S_CurContXpt
			jeq		doneBothTitle

	;	Is BothTitle in range	;

			in		InPtr:l,#S_CurTLTitle:l,Work2Ptr:l
			out		a:w
			XCall	S_SectRange

			bne		doBoth
			brl		doneBothTitle

doBoth
			in		S_CurContXpt:w,S_CurContYpt:w
			in		#S_NumLabelWidth:w,#S_EditHeight+S_ColLabelHeight:w
			in		S_CurTLTitle:l,S_CurBRTitle:l,#0:w
			in		#S_NumLabelWidth:w
			XCall	S_DrawRegion

			in		S_CurContXpt:w,#S_EditHeight+S_ColLabelHeight:w
			XTool	_MoveTo
			Tool		_LineTo,in=(S_CurContXpt:w,S_CurContYpt:w)

			Tool		_MoveTo,in=(#S_NumLabelWidth:w,S_CurContYpt:w)
			Tool		_LineTo,in=(S_CurContXpt:w,S_CurContYpt:w)

doneBothTitle

	;	Does Top Title need to be drawn	;

			lda		WorkTLCell1+2
			bne		doTop
			brl		doneTopTitle

doTop
			lda		WorkBRCell1+2
			beq		doneTopTitle

			inc		ColOKFlag

			CmpWord	#S_EditHeight+S_ColLabelHeight,S_CurContYpt
			beq		doneTopTitle

	;	Is Top Title in range	;

			MoveWord	S_CurTLTitle,WorkTLCell2
			MoveWord	#1,WorkTLCell2+2
			MoveWord	S_CurBRTitle,WorkBRCell2
			MoveWord	#702,WorkBRCell2+2

			in		Work2Ptr:l,InPtr:l,Work2Ptr:l
			out		a:w
			XCall	S_SectRange

			beq		doneTopTitle

			in		Xpt2:w,S_CurContYpt:w
			in		Xpt:w,#S_EditHeight+S_ColLabelHeight:w
			in		WorkTLCell1+2:w,S_CurTLTitle:w
			in		WorkBRCell1+2:w,S_CurBRTitle:w,#0:w
			in		S_CurContXpt:w
			XCall	S_DrawRegion

			Tool		_MoveTo,in=(S_CurContXpt:w,S_CurContYpt:w)
			Tool		_LineTo,in=(S_CurContWd:w,S_CurContYpt:w)

doneTopTitle

	;	Does Left Title need to be drawn	;

			lda		WorkTLCell1
			jeq		Exit

			lda		WorkBRCell1
			jeq		Exit

			CmpWord	#S_NumLabelWidth,S_CurContXpt
			beq		chkContArea

	;	Is Left Title in range	;

			MoveWord	#1,WorkTLCell2
			MoveWord	S_CurTLTitle+2,WorkTLCell2+2
			MoveWord	#9999,WorkBRCell2
			MoveWord	S_CurBRTitle+2,WorkBRCell2+2

			in		Work2Ptr:l,InPtr:l,Work2Ptr:l
			out		a:w
			XCall	S_SectRange

			beq		chkContArea

			in		S_CurContXpt:w,Ypt2:w
			in		#S_NumLabelWidth:w,Ypt:w
			in		S_CurTLTitle+2:w,WorkTLCell1:w
			in		S_CurBRTitle+2:w,WorkBRCell1:w,#0:w
			in		#S_NumLabelWidth:w
			XCall	S_DrawRegion

			Tool		_MoveTo,in=(S_CurContXpt:w,S_CurContYpt:w)
			Tool		_LineTo,in=(S_CurContXpt:w,S_CurContHt:w)

chkContArea

	;	Does the Content area need to be drawn	;

			lda		ColOKFlag
			beq		Exit

			in		Xpt2:w,Ypt2:w,Xpt:w,Ypt:w
			in		WorkTLCell1:l,WorkBRCell1:l,#1:w
			in		S_CurContXpt:w
			XCall	S_DrawRegion

Exit
			RETURN
			ENDP
			END

