keyboard.spin Problem

Du hast ein Betriebssystem für den Hive geschrieben oder beschäftigst dich mit den grundlegenden Systemfunktionen, dann bist du hier richtig!
Antworten
Benutzeravatar
PIC18F2550
Beiträge: 2832
Registriert: Fr 30. Sep 2011, 13:08

keyboard.spin Problem

Beitrag von PIC18F2550 »

Hallo,

im keyboard.spin gibt es diese Beschreibung leider wird der Wert %00100000 durch den Wert %00010000 ersetzt.
Das bedeutet die Taste "Alt" = "Alt Gr".

Code: Alles auswählen

'Documentation of control-key bits
'
'                       test    y,#%00000011    wz      'get SHIFT  into nz
'                       test    y,#%00000100    wz      'get CTRL-L into nz
'                       test    y,#%00001000    wz      'get CTRL-R into nz
'                       test    y,#%00010000    wz      'get ALT-L  into nz
'                       test    y,#%00100000    wz      'get ALT-R  into nz
'                       test    y,#%01000000    wz      'get WIN-L  into nz
'                       test    y,#%10000000    wz      'get WIN-R into nz
Der Fehler kann dabei nur in diesem bereich aufteten.

Code: Alles auswählen

                        cmp     data,#$83+1     wc      'scancode?
        if_nc           cmp     data,#$AA       wz      'powerup/reset?
        if_nc_and_z     jmp     #configure
        if_nc           cmp     data,#$E0       wz      'extended?
        if_nc_and_z     or      stat,#1
        if_nc_and_z     jmp     #:same
        if_nc           cmp     data,#$F0       wz      'released?
        if_nc_and_z     or      stat,#2
        if_nc_and_z     jmp     #:same
        if_nc           jmp     #newcode                'unknown, ignore
'
' Translate scancode and enter into buffer
'
                        test    stat,#1         wc      'lookup code with extended flag
                        rcl     data,#1
                        mov     data_s,data             'keyboard-de: store scancode for next table lookup with shift
                        call    #look
                        cmp     data,#0         wz      'if unknown, ignore
        if_z            jmp     #newcode
                        mov     t,_states+6             'remember lock keys in _states
                        mov     x,data                  'set/clear key bit in _states
                        shr     x,#5
                        add     x,#_states
                        movd    :reg,x
                        mov     y,#1
                        shl     y,data
                        test    stat,#2         wc
:reg                    muxnc   0,y
        if_nc           cmpsub  data,#$F0       wc      'if released or shift/ctrl/alt/win, done
        if_c            jmp     #update
                        mov     y,_states+7             'get shift/ctrl/alt/win bit pairs
                        shr     y,#16
                        cmpsub  data,#$E0       wc      'translate keypad, considering numlock
        if_c            test    _locks,#%100    wz
        if_c_and_z      add     data,#@keypad1-@table
        if_c_and_nz     add     data,#@keypad2-@table
        if_c            call    #look
        if_c            jmp     #:flags
                        'for keyboard-de changed #$DD to #lock
                        'in next code segment
                        cmpsub  data,#lock      wc      'handle scrlock/capslock/numlock
        if_c            mov     x,#%001_000
        if_c            shl     x,data
        if_c            andn    x,_locks
        if_c            shr     x,#3
        if_c            shr     t,#29                   'ignore auto-repeat
        if_c            andn    x,t             wz
        if_c            xor     _locks,x
        if_c            add     data,#lock
        if_c_and_nz     or      stat,#4                 'if change, set configure flag to update leds
{{ for keyboard-de start }}
                        cmp     data,#de_ae     wz      'replace ae
        if_z            mov     data,#"ä"
                        cmp     data,#de_oe     wz      'replace oe
        if_z            mov     data,#"ö"
                        cmp     data,#de_ue     wz      'replace ue
        if_z            mov     data,#"ü"

Kann mir da jemand weiterhelfen?
Gruß
PIC18F2550

drone265/278
Barbarus hic ergo sum, quia non intellegor ulli.
Ein Barbar bin ich hier, da ich von keinem verstanden werde.
ʎɐqǝ ıǝq ɹnʇɐʇsɐʇ ǝuıǝ ɹǝpǝıʍ ǝıu ǝɟnɐʞ ɥɔı ´uuɐɯ ɥo
quix
Beiträge: 233
Registriert: Sa 22. Okt 2011, 16:10

Re: keyboard.spin Problem

Beitrag von quix »

Ist keyboard.spin Bestandteil des Trios oder eine spezielle Tastaturbelegung/Tastaturteiber(?), die ich zusätzlich laden kann? Bei Trios r48 werden auch bei Druck auf die F-Tasten Zeichen ausgegeben.
Antworten