;-----------------------------------
SCREEN_UP
	ld	de,0
	call	ADDR_XY
	ld	a,%10000000
	xor	h
	ld	d,a
	ld	h,a
	ld	l,32
	
	push	hl
	call	SCR_1_3
	pop	hl

	ld	a,h
	add	a,8
	ld	h,a
	ld	d,a
	ld	e,0

	push	hl
	call	SCR_1_3
	pop	hl

	ld	a,h
	add	a,8
	ld	h,a
	ld	d,a
	ld	e,0

	call	SCR_1_3

	ld	h,d
	ld	l,32
	LD	BC,736
	LDIR

	RET


SCR_1_3	ld	bc,2048
	LDIR

	push	de
	ex	de,hl
	ld	de,1824
	and	a
	sbc	hl,de
	pop	de
	ex	de,hl

	ld	a,8
su_7ln	ld	bc,32
	ldir
	dec	a
	ret	z
	ld	bc,224	;+256-32
	add	hl,bc
	ex	de,hl
	add	hl,bc
	ex	de,hl
	jr	su_7ln
	ret

;-------------------------------------
ITOSTR
	ld	a,#C8
	ld	(rnk_zr),a	;ret z
	ld	de,I_STR

	ld	bc,10000
	call	rank
	ld	bc,1000
	call	rank
	ld	bc,100
	call	rank
	ld	bc,10
	call	rank
	ld	a,l
	add	a,48
	ld	(de),a
	inc	de
	xor	a
	ld	(de),a
	ret
rank	xor	a
rnk	sbc	hl,bc
	jr	c,nxt_rn
	inc	a
	jr	rnk
nxt_rn	add	hl,bc
	and	a
rnk_zr	ret	z
	add	a,48
	ld	(de),a
	inc	de
	xor	a
	ld	(rnk_zr),a	;rnk_zr   ret z => nop
	ret

I_STR	defs	6,0

;---------------------------
RND_255
	LD	HL,(RND_VAL)
NEW_RND	LD	DE,7
	ADD	HL,DE
	LD	E,L
	LD	D,H
	ADD	HL,HL
	ADD	HL,HL
	LD	C,L
	LD	B,H
	ADD	HL,HL
	ADD	HL,BC
	ADD	HL,DE
	CP	H
	JR	C,NEW_RND
	LD	A,H	
	LD	(RND_VAL),HL
	RET
RND_VAL	DEFW	#974B

;---------------------------------
DOWN_HL
	inc h	
	ld a,h	
	and 7
	ret nz	
	ld a,l	
	add a,32
	ld l,a	
	ret c	
	ld a,h	
	sub 8
	ld h,a	
	ret	

;------------------------------
;de - x  , y  
ADDR_PIX
	ld a,e	
	and a	
	rra	
	scf	
	rra	
	and a	
	rra	
	xor e	
	and %11111000
	xor e	
AP_BIT	or %11000000
	ld h,a	
	ld a,d	
	rrca	
	rrca	
	xor e	
	and %11000111
	xor e	
	rlca	
	rlca	
	ld l,a	
	ret
;------------------------------
;de - xy  
ADDR_XY	ld	a,e
	and	%00011000
AXY_BIT	or	%11000000
	ld	h,a
	ld	a,e
	rrca
	rrca
	rrca
	and	%11100000
	or	d
	ld	l,a
	ret