;================================================================================================== ; 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