?login_element?

Subversion Repositories NedoOS

Rev

Rev 170 | Blame | Compare with Previous | Last modification | View Log | Download | RSS feed

  1. getkey
  2. ;out: c=%???lrduf (0=нажато)
  3. ;fire = A
  4.         if 1==1
  5.         OS_GETKEYMATRIX ;out: bcdehlix = полуряды cs...space
  6.         xor a
  7.         bit 4,e ;5
  8.         jr z,$+3
  9.         inc a ;Left
  10.         add a,a
  11.         bit 2,h ;8
  12.         jr z,$+3
  13.         inc a ;Right
  14.         add a,a
  15.         bit 4,h ;6
  16.         jr z,$+3
  17.         inc a ;Down
  18.         add a,a
  19.         bit 3,h ;7
  20.         jr z,$+3
  21.         inc a ;Up
  22.         rr c ;'a'
  23.         rla ;fire
  24.         ld c,a
  25.         ret
  26.        
  27.         else
  28.        
  29.         ld c,0xff
  30.         ld a,0xef
  31.         in a,(0xfe) ;'0'..'6'
  32.         rra ;'0'
  33.         jr c,$+4
  34.         res 0,c ;f
  35.         rra
  36.         rra ;'8'
  37.         jr c,$+4
  38.         res 3,c ;r
  39.         rra ;'7'
  40.         jr c,$+4
  41.         res 1,c ;u
  42.         rra ;'6'
  43.         jr c,$+4
  44.         res 2,c ;d
  45.         ld a,0xf7
  46.         in a,(0xfe) ;'1'..'5'
  47.         bit 4,a ;'5'
  48.         jr nz,$+4
  49.         res 4,c ;l
  50.         ld a,0x7f
  51.         in a,(0xfe) ;
  52.         rra ;' '
  53.         ret c
  54.         res 0,c ;f
  55.         ret
  56.         endif
  57.