TESTOVÁNÍ KLÁVESNICE K testování klávesnice slouží port A a B.Přes výstupní port A se sloupce 1-10 matice klávesnice musí nastavit na L-úroveň.Zároveň se testuje řada 11-18 přes vstupní port B,zda nenastane L-úroveň.Takto lze testovat místo, kde se kříží sloupec s řadou,tj. místo kontaktu.Tento druh čtení klávesnice se nazývá SCANNEN.Samozdřejmě nemusí být čtena vždy celá klávesnice,ale je také možné testovat pouze určité klávesy,a to např.v ROM-monitoru rutinou 001EH. Na základě krátkých programů by se měla objasnit práce s klávesnicí.Přitom je třeba brát v ohledu,že zde na- bízená možnost testování klávesnice může být realizována, když je KEY TIMER řízen v paměti od E000H do E070H. Na port A je zapsáno číslo sloupce (=8) LD A,F8H 3E F8 LD (KEYPA),A 32 00 E0 Pro stabilizaci se přidává NOP.Potom se zjiští informace přes port B řady 11-18 pro sloupec 8 NOP 00 LD A,(KEYPB) 3A 01 E0 Zpětné nastavení bitu carry a testování bitu 0 (=BREAK) OR A B7 RRA 1F JP C,?BRK2 DA 80 09 Je-li zmáčknuta klávesa SHIFT,nastaví se návěští C na 0 a dvojitou rotací vlevo se posune BREAK bit do návěští C a nastaví BREAK RLA 17 RLA 17 JR NC,?BRK1 30 04 SHIFT&BREAK zmáčknut CY=0 Pokud není BREAK zmáčknut,je do ACC uložena hodnota pro klávesu SHIFT (bit 6=1),je nastaveno náv.C a proveden skok zpět LD A,40H 3E 40 SCF 37 RET C9 Pokud je BREAK zmáčknut,je zrušeno náv.C,nastaveno náv.Z a proveden skok zpět. XOR A AF RET C9 Tento program nám také oznámí výsledek testování stavem návěští a bitů 4-6 v ACC.Přitom znamená: a) Z=1 SHIFT a BREAK zmáčknuty b) D6=1 & CY=1 SHIFT zmáčknut c) D5=1 & CY=1 Control (CTRL) zmáčknut d) D4=1 & CY=1 SHIFT a Control zmáčknuty V předchozím úseku bylo testování zvláštních kláves, jako např. SHIFT&BREAK provedeno se speciálními rutinami. Výsledek testování byl ukázán přes návěští.Ve většině případů je testována celá klávesnice a výsledek testování je jako hodnota předložen registru.Zde používá SHARP speciální kód přispusobený klávesnici,tzv.display.Tato tabulka s kódy však není v OWNER`S MANUAL vytisknuta, najdete ji ale v příloze této knihy.Vlastní testování kláves se provádí monitorovou rutinou 0A50H.Výsledek je k dipozici v registru BC.Registr B osahuje přitom stav zvláštních kláves,tedy při zmáčknutí SHIFT,BREAK,CTRL, atd..Toto odpovídá výsledku našeho posledního proramu, takže když je Z=1,potom je zmáčknut SHIFT&BREAK atd.. Registr C obsahuje hodnotu řádku a sloupce zmáčknuté klávesy.Obsah reg.C bude následující: XXSSSZZZ X =není použito SSS=číslo sloupce ZZZ=číslo řady Tento výsledek čtení zmáčknuté klávesy se zjistí např. čtením klávesy `A`,přičemž v reg.C bude hodnota 20H,nebo čtením klávesy `B`,přičemž v reg.C bude hodnota 21H. Program čtení monitoru však nebere v ohledu sloupec10=F9H, tím pádem nemohou být čteny funkční klávesy.Následující strojový program čte funkční klávesy F1 až F5. FTASTE : LD A,F9H LD (KEYPA),A NOP LD A,(KEYPB) CPL OR A RET Z EXX LD D,00H LD B,00H FT1 : INC B RLCA JR NC,FT1 LD A,B RLCA LD E,A LD HL,FLEI-2 Na adrese FLEI je program pro skok na čtení F1 až F5.Adresy a data si každý může zvolit sám. ADD HL,DE LD C,(HL) INC HL LD B,(HL) POP AF PUSH BC EXX RET Je třeba brát v ohledu,že podle tohoto programu mají F-klávesy funkci GET.Program tedy probíhá jen jednou, tzn.,že se nečeká na zmáčknutí klávesy.Není-li zmáčknuta F-klávesa,vrací se program s náv.Z=0 zpět do hlavního programu.