;==================
	; scroll background
	;==================
	; background already loaded
	; ANGLE 0-15 sets angle
	; CV is Y position to display at
	; 182/220... 220/16 = 13.75
	; 0 1   2  3  4  5  6  7  8   9  10  11  12  13  14  15  16
	; 0 11 22 34 45 56 68 79 91 102 113 125 136 147 159 170 182

scroll_offsets:
	.byte 0,11,22,34,45,56,68,79,91,102,113,125,136,147,159,170

scroll_background:
	ldy	ANGLE			; use angle
	lda	scroll_offsets,Y	; lookup in table
	sta	OFFSET			; calculate offset

	ldx	#0

	ldy	CV			; lookup Y co-ord
	lsr				; and set up self-modify code

	lda	gr_offsets,Y		; get position
	sta	bgsm1+1
	lda	gr_offsets+2,Y		; get position
	sta	bgsm2+1
	lda	gr_offsets+4,Y		; get position
	sta	bgsm3+1
	lda	gr_offsets+6,Y		; get position
	sta	bgsm4+1


	iny

	clc

	lda	gr_offsets,Y		; get position
	adc	DRAW_PAGE
	sta	bgsm1+2
	lda	gr_offsets+2,Y		; get position
	adc	DRAW_PAGE
	sta	bgsm2+2
	lda	gr_offsets+4,Y		; get position
	adc	DRAW_PAGE
	sta	bgsm3+2
	lda	gr_offsets+6,Y		; get position
	adc	DRAW_PAGE
	sta	bgsm4+2

	ldy	OFFSET


bgdraw_loop:

	lda	scroll_row1,Y
bgsm1:
	sta	$400,X

	lda	scroll_row2,Y
bgsm2:
	sta	$480,X

	lda	scroll_row3,Y
bgsm3:
	sta	$500,X

	lda	scroll_row4,Y
bgsm4:
	sta	$580,X

	iny
	inx
	cpx	#40
	bne	bgdraw_loop

	rts