	
;*********************************************************************	
; includes
;*********************************************************************	

	.incdir	"F:\git\goldmomo_endlos\assembler_files\ucore\"
	.include "include\ucore_ctrl.i"

;*********************************************************************	
; sd header is placed here
;*********************************************************************	

	.include "boot_level_sdHeader.s"

;*********************************************************************
;* start at address 32 here
;*********************************************************************

start		
	cli
	
	;setup video 
	
	gpci	r7,2		;next 4 + X
	br	setupVideo
	nop			;delay slot
	nop			;delay slot
	nop			;delay slot
	nop			;delay slot	;		delay slot
		
	; clear screen
	
	movei	r2,$00	;destination 
	movei	r3,$00
	moveih	r2,$00
	moveih	r3,$d0	;p(0,0) = d000 0000
	
	gpci	r7,2	;next 4 + X
	br	memclr32
	movei	r1,$33	; count		delay slot	
	movei	r0,$00	; value		delay slot
	moveih	r1,$9e	; count		delay slot
	nop		;		delay slot	
		
	;draw text
	
	gpci	r7,2	;next 4 + X
	br	drawTextFormated
	movei	r0,t1	;text	delay slot	
	movei	r1,0	;x      delay slot
	moveih	r0,>t1	;       delay slot
	movei	r2,0	;y      delay slot
	
	gpci	r7,2	;next 4 + X
	br	drawTextFormated
	movei	r0,t2	;text	delay slot	
	movei	r1,0	;x      delay slot
	moveih	r0,>t2	;       delay slot
	movei	r2,1	;y      delay slot
	
end	br	end
	nop		;delay slot
	nop		;delay slot
	nop		;delay slot
	nop		;delay slot
	
	
t1	
	.string	"goldmomo_endlos hires"
	word	0
	
t2	
	.string	"video is set to 1440x900x15"
	word	0	
	
;*********************************************************************
;* included functions
;*********************************************************************

	.include	"components\drawText.s"	
	.include	"components\drawChar.s"	
	
;draw char related data

drawFrame 	word	$d000
		word	$0000	;dram
fontAddress	word	$e001
		word	$5068	;font src
screenWidth	word	1440
	
;******************************
;*
;* r0 	 	value
;* r1		count-1 (32 words per count)
;* r3:r2	dest
;*
;* trash r4
;*

memclr32

clearLoop

	movei	r4,3
clearInnerLoop
	esadr	r3,r2
	est	r0,0
	est	r0,1
	est	r0,2
	est	r0,3
	est	r0,4
	est	r0,5
	est	r0,6
	est	r0,7
	subi	r4,1
	brts	clearInnerLoop
	addi	r2,8	;delay slot
	addtqi	r3,r3,0	;delay slot
	nop		;delay slot
	nop		;delay slot
	
	subi	r1,1
	brts	clearLoop
	nop		;delay slot
	nop		;delay slot
	nop		;delay slot
	nop		;delay slot
	
	jmpi	r7,0
	nop		;delay slot
	nop		;delay slot
	nop		;delay slot
	nop		;delay slot
	
	
;******************************
;*
;* setupVideo
;*

setupVideo

	
	movei	r0,videoDefault		;source
	movei	r1,UcTimer2Ctrl		;dest-1
	moveih	r0,>videoDefault
	moveih	r1,>UcTimer2Ctrl			
	movei	r2,26			;27-1
	
setupVideoLoop

	rqldi	r0,0
	addi	r0,1
	addi	r1,1
	ld	r3
	subi	r2,1
	brts	setupVideoLoop
	st	r1,r3	;delay slot
	nop		;delay slot
	nop		;delay slot
	nop		;delay slot
		
	jmpi	r7,0
	nop		;delay slot
	nop		;delay slot
	nop		;delay slot
	nop		;delay slot	
	
;*********************************************************************
;* data
;*********************************************************************
	
videoDefault		;AD NAME					DEFAULT
	                                                                
	word	$0001	;10 VIDEO_ON					1 (ON)
	word	$0097	;11 HSYNC (D = 11 .. 0)				152-1
	word	$017f	;12 HSTART (D = 11 .. 0)			384-1
	word	$017d	;13 HMEMSTART (D = 11 .. 0)			382-1
	word	$071f	;14 HSTOP (D = 11 .. 0)				1824-1
	word	$076f	;15 HTOTAL (D = 11 .. 0)			1904-1
	word	$0002	;16 VSYNC (D = 10 .. 0)				3-1
	word	$001e	;17 VSTART (D = 10 .. 0)			31-1
	word	$03a2	;18 VSTOP  (D = 10 .. 0)			931-1
	word	$03a3	;19 VTOTAL  (D = 10 .. 0)			932-1
	word	$0000	;1a LC ADDER LOW				$0000
	word	$0100	;1b LC ADDER HIGH				$0040	
	word	$0000	;1c LC ADDER LATCH				X
	word	$0000	;1d LC START (10 .. 0) Pixeloffset		$0000	
	word	$0000	;1e						X
	word	$0000	;1f						X
	word	$0008	;20 HLOADSTART 					8
	word	$02d8	;21 HLOADSTOP					180+8
	word	$001e	;22 VLOADSTART 					31-1
	word	$03a2	;23 VLOADSTOP 					931-1
	word	$0001	;24 VLOADNEXT					4
	word	$0000	;25 MEM_STARTADR_store low			$0000
	word	$d000	;26 MEM_STARTADR_store high			$f000
	word	$0000	;27 MEM_LINEOFFSET_store low			$0000
	word	$0000	;28 MEM_LINEOFFSET_store high			$0000
	word	$0002	;29 MEM_MODE_store 				2 (X1R5G5B5X1R5G5B5)
	word	$0000	;2a LATCH MEM_STARTADR/LINEOFFSET/MODE		X
		



		