Należy skorzystać z portu 65531. Wartości z portu:
255 wartość nie naciśnięta
247 kursor w prawo
239 kursor w lewo
253 kursor w dół (w stronę krawędzi)
251 kursor w górę (w stronę zasilacza i gniazd Elwro)
Przykładowy kod programu dla z88dk:
int klawiatura() {
//if (joystickK()==16) return 1;
//if (joystickK()==8) return 2;
//if (joystickK()==2) return 3;
//if (joystickK()==4) return 4;
//dla kursora prawo, bit 3 zwrotny czyli dziesiętnie 8
//if (klawiaturaK()==8) return 5;
//dla Elwro
//klawiatura - 255 wartość nie naciśnięta
//klawiatura - 247 kursor w prawo
//klawiatura - 239 kursor w lewo
//klawiatura - 253 kursor w dół
//klawiatura - 251 kursor w górę
// zwrotny 2 - góra
// zwrotny 3 - lewo
// zwrotny 4 - dół
// zwrotny 5 - prawo
if (klawiaturaK()==247) return 5;
if (klawiaturaK()==239) return 3;
if (klawiaturaK()==253) return 4;
if (klawiaturaK()==251) return 2;
if (klawiaturaK()==255) return 0;
return 0;
}
int __FASTCALL__ klawiaturaK(unsigned p){
//sprawdza adres portu #FFFB - odpowiednie bity to klawisze kursora
#asm
ld a,$00
//#FFFB to dziesiętnie 65531
in a,(65531)
//żeby zwrócić wartość trzeba ją umieścić w hl
//h może być 0 bo a ma mniejszą wartość
ld h,$00
//ld hl, a
ld l,a
ret
#endasm
}