Subversion Repositories Kolibri OS

Rev

Rev 8866 | Rev 9828 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 8866 Rev 8892
Line 3... Line 3...
3
;; Copyright (C) KolibriOS team 2004-2021. All rights reserved. ;;
3
;; Copyright (C) KolibriOS team 2004-2021. All rights reserved. ;;
4
;; Copyright (C) MenuetOS 2000-2004 Ville Mikael Turjanmaa      ;;
4
;; Copyright (C) MenuetOS 2000-2004 Ville Mikael Turjanmaa      ;;
5
;; Distributed under terms of the GNU General Public License    ;;
5
;; Distributed under terms of the GNU General Public License    ;;
6
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
6
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
Line 7... Line 7...
7
 
7
 
Line 8... Line 8...
8
$Revision: 8866 $
8
$Revision: 8892 $
9
 
9
 
10
 
10
 
11
VKEY_LSHIFT   = 0000000000000001b
11
VKEY_LSHIFT   = 00000000_00000001b
12
VKEY_RSHIFT   = 0000000000000010b
12
VKEY_RSHIFT   = 00000000_00000010b
13
VKEY_LCONTROL = 0000000000000100b
13
VKEY_LCONTROL = 00000000_00000100b
14
VKEY_RCONTROL = 0000000000001000b
14
VKEY_RCONTROL = 00000000_00001000b
15
VKEY_LALT     = 0000000000010000b
15
VKEY_LALT     = 00000000_00010000b
16
VKEY_RALT     = 0000000000100000b
16
VKEY_RALT     = 00000000_00100000b
17
VKEY_CAPSLOCK = 0000000001000000b
17
VKEY_CAPSLOCK = 00000000_01000000b
18
VKEY_NUMLOCK  = 0000000010000000b
18
VKEY_NUMLOCK  = 00000000_10000000b
19
VKEY_SCRLOCK  = 0000000100000000b
19
VKEY_SCRLOCK  = 00000001_00000000b
20
VKEY_LWIN     = 0000001000000000b
20
VKEY_LWIN     = 00000010_00000000b
21
VKEY_RWIN     = 0000010000000000b
21
VKEY_RWIN     = 00000100_00000000b
22
 
22
 
Line 23... Line 23...
23
VKEY_SHIFT    = 0000000000000011b
23
VKEY_SHIFT    = VKEY_LSHIFT + VKEY_RSHIFT
24
VKEY_CONTROL  = 0000000000001100b
24
VKEY_CONTROL  = VKEY_LCONTROL + VKEY_RCONTROL
25
VKEY_ALT      = 0000000000110000b
25
VKEY_ALT      = VKEY_LALT + VKEY_RALT
26
 
26
 
Line 194... Line 194...
194
;---------------------------------------------------------------------
194
;---------------------------------------------------------------------
195
align 4
195
align 4
196
irq1:
196
irq1:
197
        movzx   eax, word[thread_count]; top window process
197
        movzx   eax, word[thread_count]; top window process
198
        movzx   eax, word[WIN_POS+eax*2]
198
        movzx   eax, word[WIN_POS+eax*2]
199
        shl     eax, 8
199
        shl     eax, BSF sizeof.APPDATA
200
        mov     al, [SLOT_BASE+eax+APPDATA.keyboard_mode]
200
        mov     al, [SLOT_BASE+eax+APPDATA.keyboard_mode]
201
        mov     [keyboard_mode], al
201
        mov     [keyboard_mode], al
Line 202... Line 202...
202
        
202
        
203
        in      al, 0x60
203
        in      al, 0x60
Line 508... Line 508...
508
        cmp     al, 120
508
        cmp     al, 120
509
        jae     .exit.irq1
509
        jae     .exit.irq1
510
        inc     eax
510
        inc     eax
511
        mov     [KEY_COUNT], al
511
        mov     [KEY_COUNT], al
512
; store ascii or scancode
512
; store ascii or scancode
513
        mov     [KEY_COUNT+eax], bl ; actually KEY_BUFF + EAX - 1
513
        mov     [KEY_BUFF+eax-1], bl
514
; store original scancode
514
; store original scancode
515
        add     eax, 120+2
515
        add     eax, 120+2
516
        push    ecx
516
        push    ecx
517
        cmp     [keyboard_mode], 0; return from keymap
517
        cmp     [keyboard_mode], 0; return from keymap
518
        je      @f
518
        je      @f
Line 519... Line 519...
519
 
519
 
520
        xor     ch, ch
520
        xor     ch, ch
521
@@:
521
@@:
522
        mov     [KEY_COUNT+eax], ch ; actually KEY_BUFF + EAX - 1
522
        mov     [KEY_BUFF+eax-1], ch
523
        pop     ecx
523
        pop     ecx
524
        sub     eax, 120+2
524
        sub     eax, 120+2
525
.exit.irq1:
525
.exit.irq1:
526
        ret
526
        ret
Line 570... Line 570...
570
        mov     [old_kb_lights], al
570
        mov     [old_kb_lights], al
571
        call    set_lights
571
        call    set_lights
572
.nothing:
572
.nothing:
573
        ret
573
        ret
574
;---------------------------------------------------------------------
574
;---------------------------------------------------------------------
575
numlock_map:
575
iglobal
576
    db   0x37   ;Num 7
-
 
577
    db   0x38   ;Num 8
-
 
578
    db   0x39   ;Num 9
-
 
579
    db   0x2D   ;Num -
-
 
580
    db   0x34   ;Num 4
576
numlock_map db '789-456+1230.'
581
    db   0x35   ;Num 5
-
 
582
    db   0x36   ;Num 6
-
 
583
    db   0x2B   ;Num +
-
 
584
    db   0x31   ;Num 1
-
 
585
    db   0x32   ;Num 2
-
 
586
    db   0x33   ;Num 3
-
 
587
    db   0x30   ;Num 0
-
 
588
    db   0x2E   ;Num .
577
endg
589
;---------------------------------------------------------------------
578
;---------------------------------------------------------------------