;==================================================================================================
; TEST - reading an displaying bits 6 & 7 from AY-3-8912 I/O port
;==================================================================================================

		cpu	z80undoc
		org	50000		; pseudoinstrukce - přelož a ulož na 50000
					; musí běžet v rychlé RAM

START		di			; nesmí být zpomalováno a přerušováno
		call	READAY
		ei			; před návratem do BASICu přerušení povol
		ret

READAY		ld	bc,65533	; zvol registr 7 v AY
		ld	a,7
		out	(c),a
	
		ld	bc,49149	; vypni zvuk a nastav I/O port jako výstup (bit 6 v log. 1)
		ld	a,255
		out	(c),a
	
		ld	bc,65533	; zvol registr 14 v AY
		ld	a,14
		out	(c),a

		ld	bc,49149	; nastav na I/O portu bit 2 do log. 0 0b11111011
		ld	a,251		; tím se signalizuje na RTS připravenost přijímat data
		out	(c),a

		ld	b,10		; počkej 10 cyklů
WAIT		djnz	WAIT

		ld	bc,65533	; zvol registr 7 v AY
		ld	a,7
		out	(c),a

		ld	bc,49149	; nastav I/O port jako vstup (bit 6 v log 0)
		ld	a,191		; 0b10111111
		out	(c),a		; touto instrukcí se RTS pulz ukoncuje
	
		ld	bc,65533	; zvol registr 14 v AY
		ld	a,14
		out	(c),a

		ld	hl,16384+6144	; adresa prvního barvového atributu
	
		in	a,(c)
		ld	d,a
	
		bit	7,d
		ld	a,6*8		; žlutý PAPER pro 0 v bitu 7
		jr	z,READAY_1
		ld	a,2*8		; červený PAPER pro 1 v bitu 7
READAY_1	ld	(hl),a
		inc	hl
		inc	hl

		bit	6,d
		ld	a,6*8		; žlutý PAPER pro 0 v bitu 6
		jr	z,READAY_2
		ld	a,2*8		; červený PAPER pro 1 v bitu 6
READAY_2	ld	(hl),a
		inc	hl
		inc	hl

		call	8020
		ret	nc		; nc pokud byl stisknutý BREAK
		jr	READAY