Advertisement
vito-Z80

Key listener

May 1st, 2020
1,851
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. ; run every frame in interrupts IM 2
  2. keyListener:
  3.     call getAKey
  4.     ld a,r
  5.     sub 3
  6.     ret z   ; key not pressed
  7.     sub 4
  8.     rra
  9. div5:
  10.     rrc b
  11.     jr nc,getChar
  12.     sub 3
  13.     jr div5
  14. getChar:
  15.     add a,low rows
  16.     ld l,a
  17.     adc a,high rows
  18.     sub l
  19.     ld h,a
  20. ;   ld l,a
  21. ;   ld h,0
  22. ;   ld bc,rows
  23. ;   add hl,bc
  24.     ld a,(hl)   ; received char (key)
  25.     // .....
  26.     ret
  27. getAKey:
  28.     ld   bc,#FEFE
  29.     xor a
  30.     ld r,a
  31. nextRow
  32.     in   a,(c)
  33.     cpl
  34.     rrca
  35.     ret c
  36.     rrca
  37.     ret c
  38.     rrca
  39.     ret c
  40.     rrca
  41.     ret c
  42.     rrca
  43.     ret c
  44.     rlc  b
  45.     jr c,nextRow
  46.     ret
  47. rows:  
  48.     db "}ZXCV"
  49.     db "ASDFG"
  50.     db "QWERT"
  51.     db "12345"
  52.     db "09876"
  53.     db "POIUY"
  54.     db "{LKJH"
  55.     db "^`MNB"
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement