GBASL	= $26
GBASH	= $27
HGRPAGE = $E6
LINE	= $FD
YPOS	= $FE
COLOR	= $FF

HGR	= $F3E2
HGR2	= $F3D8
HPOSN	= $F411

raster:
	jsr	HGR
	jsr	HGR2
	sta	$C05E		; set double hires
	sta	$C00D		; 80 column
	sta	$C001		; 80 store

	lsr	HGRPAGE		; set to $20 (HGR2 set this to $40)

	sta	YPOS

;forever_loop:

;	jmp	forever_loop

draw_raster:

line_loop:
	lda	#7		; want 8 lines
	sta	LINE

	lda	YPOS		; check bounds
	bmi	go_neg		; if >128, flip to go up
	cmp	#64		; if < 64, flip to go down
	bcs	do_add		; otherwise, nothing
go_pos:
	ldx	#$1
	.byte	$2C	; bit trick
go_neg:
	ldx	#$ff
	stx	smc+1
do_add:
	clc			; move the bar
smc:
	adc	#1
	sta	YPOS

color_loop:			; get right color
	lda	LINE	;(2)
	cmp	#$4	;(2)
	bcc	none	;(2)
	eor	#$3	;		00 01 10 11 00 01 10 11
none:			;		11 10 01 00
	and	#$3	;(2)

;	ldx	LINE
;	lda	order,X
	clc
color_smc:
	adc	#0
	tax
	lda	colors,X
	sta	COLOR

	lda	YPOS
	sec
	sbc	LINE

;	jsr	draw_line_color

	; inline!
;=====================================
	;=============================
	; draw line of color in COLOR
	;=============================
draw_line_color:
	ldx	#0
	ldy	#0
	jsr	HPOSN

	ldy	#39
loop_it:
	; set page2
	sta	$C055
	jsr	next_pixel

	; set page1
	sta	$C054
	jsr	next_pixel
	dey

	bpl	loop_it
;====================================
;	rts


	dec	LINE
	bmi	line_loop
	bpl	color_loop


next_pixel:
	lda	COLOR		; 2
	sta	(GBASL),Y	; 3
	cmp	#$80		; 2
	rol	COLOR		; 2
	rts			; 1

;
; x-4 =     fc fd fe ff 0 1 2 3
;	lda	LINE	(2)
;	cmp	#$4	(2)
;	bcc	none	(2)
;	eor	#$3			00 01 10 11 00 01 10 11
;none:					11 10 01 00
;	and	#$3	(2)

;order:
;	.byte 0,1,2,3,3,2,1,0
colors:
	.byte $00,$11,$22,$33	; red

;	.byte $00,$11,$22,$33,$33,$22,$11,$00	; red
;	.byte $00,$DD,$EE,$FF,$FF,$EE,$DD,$00	; aqua lblue white
;	.byte $00,$AA,$BB,$CC,$CC,$BB,$AA,$00	; grey yellow mblue
;	.byte $00,$77,$88,$99,$99,$88,$77,$00	; ugly green
;	.byte $00,$44,$55,$66,$66,$55,$44,$00	; purple