	TITLÅ	'Farbtest und Einstellung fuer alphan. MARC-Bildschirm'

; VERSION 2.0
; 11.11.89
; 
; Nutzung der Kombination 8FH Farbbyte Randfarbbyte

	MACLIB	Z80

bdos	equ	5

	db	'MARCFARB890516'
balken:
zeile:
	push	b		; retten Zeilenzahl
	mvi	a,70h		; weiss
	call	baaus
	mvi	a,61h		; gelb
	call	baaus
	mvi	a,34h		; tuerkis
	call	baaus
	mvi	a,25h		; gruen
	call	baaus
	mvi	a,52h		; purpur
	call	baaus
	mvi	a,43h		; rot
	call	baaus
	mvi	a,16h		; blau
	call	baaus
	mvi	a,07h		; schwarz
	call	baaus
	pop	b
	djnz	zeile		; naechste Zeile
	ret			; Balken fertig

baaus:	sta	far1
	mvi	c,9
	lxi	d,bastr
	jmp	bdos

bastr:	DB	8FH
far1:	DB	0
raf1:	DB	0,'          $'

eingabe:
	mvi	c,6
	mvi	e,0ffh
	call	bdos
	cpi	0
	jrz	eingabe		; warten auf Zeichen
	cpi	03h
	stc
	rz
	cpi	1bh
	rz
	cpi	0dh
	rz
	sui	31h
	jrc	eingabe
	cpi	8
	jrnc	eingabe
	inr	a
	cmc
	ret

farberm:
	inx	h
	dcr	a
	jrnz	farberm
	mov	a,m
	ret

kfarbtab:
	db	70h,61h,34h,25h,52h,43h,16h,07h
vfarbtab:
	db	7,6,3,2,5,4,1,0

farau:	db	8fh
far2:	db	0
raf2:	db	0,'$'


anfang:
	mvi	c,2		; kursor aus
	mvi	e,83h
	call	bdos
	mvi	c,2		; bab loeschen
	mvi	e,0ch
	call	bdos
begin:
	mvi	c,2		; bab anfang
	mvi	e,1
	call	bdos
	mvi	a,13h
	sta	farbreg

	rrc ! rrc ! rrc ! rrc
	sta	raf1
	mvi	b,23		; farbbalken erzeugen
	call	balken
	lda	farbreg
	sta	far2
randwdh:
	sta rarreg
	rrc ! rrc ! rrc ! rrc
	sta raf2
	mvi c,9 ! lxi d,farau ! call bdos
	call eingabe
	jc retc
	cpi 1bh
	jz begin
	cpi 0dh
	jrz hintgbeg
	lxi h,kfarbtab-1 ! call farberm
	jr randwdh
hintgbeg:
	lda rarreg
hintgwdh:
	sta farbreg ! sta far2
	mvi c,9 ! lxi d,farau ! call bdos
	mvi c,2 ! mvi e,1 ! call bdos
	mvi c,15
hintloop1:
	mvi b,80
hintloop2:
	push b
	mvi c,2 ! mvi e,' ' ! call bdos
	pop b
	djnz hintloop2
	dcr c
	jrnz hintloop1
	call eingabe
	jc retc
	cpi 1bh
	jz begin
	cpi 0dh
	jrz vordgbeg
	lxi h,kfarbtab-1 ! call farberm
	jr hintgwdh
vordgbeg:
	lda farbreg
	rlc ! rlc ! rlc ! rlc
	sta far2
	mvi c,9 ! lxi d,farau ! call bdos
	mvi c,2 ! mvi e,1 ! call bdos
	mvi c,15
vorloop1:
	mvi b,80
vorloop2:
	push b
	mvi c,2 ! mvi e,' ' ! call bdos
	pop b
	djnz vorloop2
	dcr c
	jrnz vorloop1
	lda farbreg ! sta far2
	mvi c,9 ! lxi d,farau ! call bdos
	mvi c,2 ! mvi e,1 ! call bdos
	mvi a,20h
vloop1:	mvi b,32
vloop2:	mvi e,' ' ! mvi c,2
	push b ! push psw
	call bdos
	pop psw ! push psw
	mov e,a ! mvi c,2 ! call bdos
	pop psw ! pop b
	inr a
	cpi 7fh
	jrz vloope
	djnz vloop2
	push psw
	mvi b,16
	mvi c,2
vloopl:	mvi e,15h		; kursor ein zeichen nach rechts
	push b
	call bdos
	pop b
	djnz vloopl
	pop psw
	jr vloop1

vloope:	mvi e,' ' ! mvi c,2 ! call bdos
	mvi e,' ' ! mvi c,2 ! call bdos
	lda farbreg ! sta far2
	mvi c,9 ! lxi d,farau ! call bdos
	call eingabe
	jc retc
	cpi 1bh
	jz begin
	cpi 0dh
	jrz retc
	lxi h,vfarbtab-1 ! call farberm
	mov b,a ! lda farbreg ! ani 0f0h ! ora b ! sta farbreg
	jmp vordgbeg

retc:
	lda rarreg
	rrc ! rrc ! rrc ! rrc
	sta rarreg
	mvi c,9 ! lxi d,farbte ! jmp bdos

farbte:	db	8fh
farbreg:
	db	13h
rarreg:	db	01h
	db	0ch,82h,'$'

	end	anfang

