Код:scan_kbd ld a,-2 ld c,a ld hl,kb_buf dup 7 ld b,a ini rlca edup ld b,a ini xor a in a,(-2) cpl and #1f ld (cur_keys),a ret z scf ret scan_ctrl ld bc,k_table ld de,kb_buf exx ld b,8 scan_ctrl0 exx ld a,(bc) inc bc ld l,a ld h,0 add hl,de ld a,(bc) inc bc and (hl) cp 1 exx rr e djnz scan_ctrl0 ld a,e ld (cur_keys),a kemp_act ret ld bc,#001f in a,(c) and #0f or e ld (cur_keys),a ret scan_tbl ld hl,kb_buf ld b,8 scan_tbl0 ld c,#10 scan_tbl1 ld a,(hl) and c cp 1 jr c,scan_tbl2 rrc c jr nc,scan_tbl1 inc hl djnz scan_tbl0 ld c,b ret scan_tbl2 ld a,8 sub b ld b,a ret t_table db 2,4 db 1,16 db 1,1 db 2,8 k_table ; p o a q Sp En H db 5, 1 ;p db 5, 2 ;o db 1, 1 ;a db 2, 1 ;q db 2, 1 ; db 2, 16 ;T db 2, 8 ;R db 5, 16 ;Y cur_keys db 0 old_keys db 0 prs_keys db 0 key_prsed db 0 kb_buf ds 8 ; 1 2 4 8 16 ;#fe 0 cs z x c v ;#fd 1 a s d f g ;#fb 2 q w e r t ;#f7 3 1 2 3 4 5 ;#ef 4 0 9 8 7 6 ;#df 5 p o i u y ;#bf 6 en l k j h ;#7f 7 sp ss m n b keys_table db #01,"ZXCV" db "ASDFG" db "QWERT" db "12345" db "09876" db "POIUY" db #0d,"LKJH" db #20,#02,"MNB",#00 key_char ld de,keys_table ld hl,kb_buf ld c,8 key_char0 ld a,(hl) inc hl ld b,5 key_char1 rra jr nc,key_char2 inc de djnz key_char1 dec c jr nz,key_char0 key_char2 ld a,(de) ld (key_prsed),a ret




Ответить с цитированием
