div7_table	= $b800
mod7_table	= $b900
hposn_high	= $ba00
hposn_low	= $bb00



	;=====================
	; make /7 %7 tables
	;=====================

hgr_make_tables:

	ldy	#0
	lda	#0
	ldx	#0
div7_loop:
	sta	div7_table,Y

	inx
	cpx	#7
	bne	div7_not7

	clc
	adc	#1
	ldx	#0
div7_not7:
	iny
	bne	div7_loop


	ldy	#0
	lda	#0
mod7_loop:
	sta	mod7_table,Y
	clc
	adc	#1
	cmp	#7
	bne	mod7_not7
	lda	#0
mod7_not7:
	iny
	bne	mod7_loop


	; Hposn table

	lda	#0
hposn_loop:
	ldy	#0
	ldx	#0
	pha
	jsr	hposn	; (Y,X),(A)
	pla
	tax

	lda	GBASL
	sta	hposn_low,X

	lda	GBASH
	sta	hposn_high,X

	inx
	txa

	cmp	#192
	bne	hposn_loop

	rts

	; left masks
	;	in memory	on screen
	;	x111 1111	1111111		start at 0
	;	x111 1110	0111111		start at 1
	;	x111 1100	0011111		start at 2
	; ...
	;	x100 0000	0000001		start at 6

left_masks:
	.byte $FF,$FE,$FC,$F8, $F0,$E0,$C0

	; right masks
	;	in memory	on screen
	;	x000 0001	1000000		end at 0
	;	x000 0011	1100000		end at 1
	;	x000 0111	1110000		end at 2
	; ...
	;	x011 1111	1111110		end at 5
	;	x111 1111	1111111		end at 6
right_masks:
	.byte $81,$83,$87, $8F,$9F,$BF,$FF




	; from the Apple II firmware
hposn:
;	sta	HGR_Y			; save Y and X positions
;	stx	HGR_X
;	sty	HGR_X+1

	pha				; Y pos on stack

	and	#$C0			; calc base addr for Y-pos

	sta	GBASL
	lsr
	lsr
	ora	GBASL
	sta	GBASL
	pla

	sta	GBASH
	asl
	asl
	asl
	rol	GBASH
	asl
	rol	GBASH
	asl
	ror	GBASL
	lda	GBASH

	and	#$1F

	ora	HGR_PAGE
	sta	GBASH

;	txa
;	cpy	#0
;	beq	xpos_lessthan_256
;	ldy	#35
;	adc	#4
;label_1:
;	iny
;xpos_lessthan_256:
;	sbc	#7
;	bcs	label_1

	rts

