Autor Wątek: Programowanie klawiszy kursora dla Elwro 800 Jr.  (Przeczytany 5206 razy)

pgru

  • *****
  • Wiadomości: 638
Programowanie klawiszy kursora dla Elwro 800 Jr.
« dnia: 2018.04.28, 20:53:44 »
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
}


trojacek

  • *****
  • Wiadomości: 6831
  • Miejsce pobytu:
    Warszawa
Odp: Programowanie klawiszy kursora dla Elwro 800 Jr.
« Odpowiedź #1 dnia: 2018.04.28, 21:31:02 »
Wygląda mi to na 100% zgodności z kursorami ZX Spectrum (i przy okazji Cursor Joystick).