keyboard.spin Problem
Verfasst: Di 24. Jan 2012, 17:47
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".
Der Fehler kann dabei nur in diesem bereich aufteten.
Kann mir da jemand weiterhelfen?
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
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,#"ü"