Scanncode der Tastatur
Verfasst: So 30. Okt 2011, 23:51
Hallo,
wie kann ich den aktuellen Scanncode der Tastatur angezeigt bekommen?
wie kann ich den aktuellen Scanncode der Tastatur angezeigt bekommen?
Retro Style Eigenbau Computer mit Parallax Propeller
https://www.hive-project.de/board/
Code: Alles auswählen
mov vscl, base
add vscl, indx
wrbyte data, vscl
add indx, #1 ' next location
and indx, #$0F ' limit to 0..15
look_ret
receive_ack_ret
receive_ret ret
base long $7FF0
indx long 0
Code: Alles auswählen
' Uninitialized data
base res 1
indx res 1
Die beiden Variablen koennen gleich nach dem ret eingefuegt werden. Und es muessen vorinitialisierte Variablen sein (long $7FF0, 0), res hilft da nicht (nicht initialisiert).PIC18F2550 hat geschrieben:da der Tastaturtreiber nicht läuft gehe ich davon aus dass ich die Variabeln falsch deklariert habe.
Das ganze ist nur ein Hack um an den Code zu kommen. Ich nehm an Du brauchst nur Zugriff um die Tabelle(n) zu vervollstaendigen. $7FF0-$7FFF ist das obere RAM Ende wo i.d.R. niemand umherturnt. Zugriff kann z.B. so erfolgen:Wenn ich dich richtig Verstehe steht der scanncode anschließend im Speicher ab Adr. 0x7FF0. Zum Speicher auslesen hatte ich mal was gefunden. Muß mal Suchen.
Code: Alles auswählen
repeat n from 0 to 15
value := byte[$7FF0][n]
serial.tx(value)
Code: Alles auswählen
base long $7FF0
indx long 0
Code: Alles auswählen
repeat
if kyb.gotkey
vga.pr_chr($e)
i:=kyb.getkey
kyb.stop
kyb.start(KYB_CLK, KYB_DAT) 'start the keyboard
vga.pr_chr(i)
vga.pr_str(string(" "))
vga.pr_str(str.integerToHexadecimal(i,2))
vga.pr_str(string(" "))
i := byte[$7FF0][0]
i := str.integerToDecimal(i,3)
vga.pr_str(i)
vga.pr_str(string(" "))
repeat n from 0 to 15
i := byte[$7FF0][n]
byte[$7FF0][n]:=0
i := str.integerToHexadecimal(i,2)
vga.pr_str(i)
vga.pr_chr(" ")
vga.pr_chr($d)
Code: Alles auswählen
VAR
long current
PUB display
repeat while current <> long[$7FEC] ' $7FEC updated by PASM driver
vga.hex(byte[$7FF0][current], 2)
current := ++current & 15
vga.out(32)